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中文件流上传和下载的操作方式,对于一些简单的文件上传下载需求,这种方式是比较方便的选择。