1. 程式人生 > >java以流的形式輸出檔案

java以流的形式輸出檔案

    public void downProcessFile(HttpServletRequest request,HttpServletResponse response,String path){
        try {
            File file = new File(path);
            String filename = file.getName();// 獲取日誌檔名稱
            InputStream fis = new BufferedInputStream(new FileInputStream(path));
            byte[] buffer = new byte[fis.available()];
            fis.read(buffer);
            fis.close();
            response.reset();
            // 先去掉檔名稱中的空格,然後轉換編碼格式為utf-8,保證不出現亂碼,這個檔名稱用於瀏覽器的下載框中自動顯示的檔名
            response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
            response.addHeader("Content-Length", "" + file.length());
            OutputStream os = new BufferedOutputStream(response.getOutputStream());
            response.setContentType("application/octet-stream");
            os.write(buffer);// 輸出檔案
            os.flush();
            os.close();
        } catch (Exception e) {
        }
    }