日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java io流文件损坏_java使用io流下载.docx. xlsx文件,出现文件损坏提示

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java io流文件损坏_java使用io流下载.docx. xlsx文件,出现文件损坏提示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

在使用io流下載服務(wù)器上的資源文件時,出現(xiàn)以下提示:但是選擇“是”后文件可以正常打開

參考 代碼如下:

[codesyntax lang="java"]

@RequestMapping(value = "downLoadInstruction")

public void downLoadInstruction(HttpServletRequest request,HttpServletResponse response) {

BufferedOutputStream out = null;

InputStream is = null;

try {

response.reset();

response.setCharacterEncoding("UTF-8");

String filename = "專家信息管理系統(tǒng)使用說明.docx";

response.setContentType("application/msword");

String templatePath = request.getSession().getServletContext().getRealPath("/template/instructionsForUse.docx");

//下載是否使用的火狐瀏覽器

String agent = request.getHeader("User-Agent");

boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);

if(isMSIE){

response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename, "UTF-8"));

}else{

response.setHeader("Content-Disposition", "attachment;filename="+ new String(filename.getBytes("UTF-8"), "ISO-8859-1"));

}

out = new BufferedOutputStream(response.getOutputStream());

is = new BufferedInputStream(new FileInputStream(new File(templatePath)));

byte[] content = new byte[1024];

int len = 0;

while ((len = is.read(content)) > 0) {

out.write(content, 0, len);

}

//注釋1

//out.write(content);

out.flush();

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

if(is!=null){

is.close();

}

if(out!=null){

out.close();

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

[/codesyntax]

代碼中需要將注釋1的地方注釋掉,不然就會出現(xiàn)文件損壞,原因在于“嘗試每次讀取1024個字節(jié),寫入buffer數(shù)組,如果少于1024,就會返回實際讀取的字節(jié),os.write(buffer);可能多了“。

查看原文:http://surenpi.com/2017/01/03/java%e4%bd%bf%e7%94%a8io%e6%b5%81%e4%b8%8b%e8%bd%bd-docx-xlsx%e6%96%87%e4%bb%b6%ef%bc%8c%e5%87%ba%e7%8e%b0%e6%96%87%e4%bb%b6%e6%8d%9f%e5%9d%8f%e6%8f%90%e7%a4%ba/

總結(jié)

以上是生活随笔為你收集整理的java io流文件损坏_java使用io流下载.docx. xlsx文件,出现文件损坏提示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。