淘先锋技术网

首页 1 2 3 4 5 6 7

Java中的文件流上传和下载操作是非常常见的操作,常用于网络文件传输等场景。下面我们来介绍下Java中如何利用文件流进行上传和下载操作。

文件上传:

/**
 * 文件上传
 * @param file 文件
 * @param uploadDir 上传路径
 * @param fileName 文件名
 * @return
 * @throws Exception
 */
public static void upload(InputStream file, String uploadDir,String fileName) throws Exception{
OutputStream out = new FileOutputStream(new File(uploadDir,fileName));
byte[] buffer = new byte[1024];
int length = 0;
while((length = file.read(buffer)) != -1) {
out.write(buffer, 0, length);
}
file.close();
out.flush();
out.close();
}

文件上传操作中的inputstream参数为待上传的文件流,uploadDir为上传路径,fileName为文件名。

文件下载:

/**
 * 文件下载
 * @param filePath 文件路径
 * @param response
 * @throws Exception
 */
public static void download(String filePath, HttpServletResponse response) throws Exception {
File file = new File(filePath);
String fileName = file.getName();
InputStream in = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[in.available()];
in.read(buffer);
in.close();
response.reset();
response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream out = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
out.write(buffer);
out.flush();
out.close();
}

文件下载操作中的filePath为文件路径,response为HttpServletResponse对象。

以上是Java中文件流上传和下载的操作方式,对于一些简单的文件上传下载需求,这种方式是比较方便的选择。