public class FileDownUtil { public static void fileDown(String path, HttpServletResponse response) { File file = new File(path); //获取文件名 String fileName = file.getName(); InputStream bis = null; OutputStream bos = null; try { //以流的形式下载文件 bis = new BufferedInputStream(new FileInputStream(file)); bos = new BufferedOutputStream(response.getOutputStream()); // 二进制流,在不知道下载文件类型时使用 response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1")); response.setHeader("Content-Length", String.valueOf(file.length())); //创建一个和文件一样大小的缓存区 byte[] b = new byte[bis.available()]; int len; while ((len = bis.read(b)) != -1) { bos.write(b, 0, len); bos.flush(); } bis.close(); bos.close(); } catch (IOException e) { e.printStackTrace(); } } }
java IO流下载文件
最新推荐文章于 2024-07-08 09:15:50 发布