读取从java服务器生成的DOCX文件时出错

读取从java服务器生成的DOCX文件时出错,java,Java,在服务器端,我有一个正确的DOCX文件。我有Java代码从磁盘读取文件并通过JSP刷新它 当我下载该文件时,Office说该文件包含错误。这是我的JSP中的代码: File dir = new File("c:\\file_test.docx"); FileInputStream fin = new FileInputStream(dir); byte fileContent[] = new byte[(int)dir.length()]; fin.read(fi

在服务器端,我有一个正确的DOCX文件。我有Java代码从磁盘读取文件并通过JSP刷新它

当我下载该文件时,Office说该文件包含错误。这是我的JSP中的代码:

    File dir = new File("c:\\file_test.docx");
    FileInputStream fin = new FileInputStream(dir);
    byte fileContent[] = new byte[(int)dir.length()];
    fin.read(fileContent);
    fin.close();
    response.setHeader("Content-Disposition", "attachment;filename=file_test.docx");
    response.setContentLength((int)dir.length());
    response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8");
    response.getOutputStream().write(fileContent);
    response.getOutputStream().flush();
我发现下载的文件末尾有一个空行。如果我用记事本打开文件并删除空格,文件将正确打开

我的问题是,在JSP中,如何删除二进制文件末尾的空白?我试图在文件中包含除最后一个字节以外的所有字节,但这不起作用

如果删除第6238行,Office将正确打开文件。用记事本编辑++


我需要你的帮助

JSP在不小心时输出文本

以:

%>
没有任何后续内容,即没有换行


或者让它成为一个servlet。

这正是发生的事情。非常感谢你,乔普·艾根。