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中文件流上傳和下載的操作方式,對于一些簡單的文件上傳下載需求,這種方式是比較方便的選擇。
上一篇java的類和繼承