我有一个servlet,它读取BINARY文件并将其发送给客户端.
byte[] binaryData = FileUtils.readFileToByteArray(path);
response.getWriter().print(new String(binaryData));
Run Code Online (Sandbox Code Playgroud)
它适用于NON BINARY文件.当我有一个BINARY文件时,我明白了receive file length bigger than origin or received file not the same.我如何读取和发送二进制数据?
谢谢.
不是通过Writer.作者用于文本数据,而不是二进制数据.您当前的代码正在尝试使用系统默认编码将任意二进制数据解释为文本.这是一个非常糟糕的主意.
你想要一个输出流 - 所以使用response.getOutputStream(),并将二进制数据写入:
response.getOutputStream().write(FileUtils.readFileToByteArray(path));
Run Code Online (Sandbox Code Playgroud)