Java Spring FileInputStream缓冲区偶尔包含不正确的字符

Java Spring FileInputStream缓冲区偶尔包含不正确的字符,java,spring,file-io,spring-mvc,bytearray,Java,Spring,File Io,Spring Mvc,Bytearray,我在SpringMVC中使用FileInputStream将文件块读入byte[]缓冲区 然后(使用FileCopyUtils.copy)将缓冲区写入响应流 我注意到写入流的响应(用户接收到的响应)看起来与文件类似,但存在缺陷 在文件数据之前,文件顶部有一个“2000”(不带引号) 这个“2000”字符串偶尔出现在我的整个文件中 文件以“0”结尾 这些都不存在于正在读取的原始文件中。谁能帮我摆脱这些,让我有一个准确的输出流 下面是我的输出不正确的示例: 2000 a line of data a

我在SpringMVC中使用FileInputStream将文件块读入byte[]缓冲区

然后(使用FileCopyUtils.copy)将缓冲区写入响应流

我注意到写入流的响应(用户接收到的响应)看起来与文件类似,但存在缺陷

  • 在文件数据之前,文件顶部有一个“2000”(不带引号)
  • 这个“2000”字符串偶尔出现在我的整个文件中
  • 文件以“0”结尾
  • 这些都不存在于正在读取的原始文件中。谁能帮我摆脱这些,让我有一个准确的输出流

    下面是我的输出不正确的示例:

    2000
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line o
    2000
    f data
    a line of data
    2000
    
    a line of data
    a line of data
    0
    
    应该是:

    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    a line of data
    
    谢谢

    你能从哪里试一下吗

    很难从代码中分辨出来,但在将数据从一个地方复制到另一个地方(索引不匹配/缺少刷新等)时,很可能在某个地方出现了错误。请使用现成且经过良好测试的流复制例程来查明问题。

    您可以从以下位置尝试吗


    很难从代码中分辨出来,但在将数据从一个地方复制到另一个地方时,很可能在某个地方出现了错误(索引不匹配/缺少刷新等)使用现成且经过良好测试的流复制例程来查明问题。

    我的猜测是流被指定为a,而您只需按原样读取它。

    我的猜测是流被指定为a,而您只需按原样读取它与FileInputStream无关。这是在传输到客户端的过程中发生的。可能是ratchet freak建议的分块编码。在客户端使用HttpURLConnection,它将以不可见的方式处理该连接。

    与FileInputStream无关。这是在传输到客户端的过程中发生的。可能是ratchet freak建议的分块编码。在客户端使用HttpURLConnection,它将以不可见的方式处理此问题。

    谢谢。如何更改此编码?我目前正在测试fiddler。是否需要添加请求头?我正在指定:User-Agent:Fiddler-Host:localhost:8443内容长度:109内容类型:application/x-www-form-urlencoded.Follow:或者我不需要更改此编码吗?这只是一个假阳性吗?如果我保持编码不变,我的应用程序会知道如何处理响应吗?我正在编写一个iOS应用程序,不知道NSURLConnection API是否支持这一点。似乎应该这样。无论如何。谢谢你的评论+1谢谢。如何更改此编码?我目前正在测试fiddler。是否需要添加请求头?我正在指定:User-Agent:Fiddler-Host:localhost:8443内容长度:109内容类型:application/x-www-form-urlencoded.Follow:或者我不需要更改此编码吗?这只是一个假阳性吗?如果我保持编码不变,我的应用程序会知道如何处理响应吗?我正在编写一个iOS应用程序,不知道NSURLConnection API是否支持这一点。似乎应该这样。无论如何。谢谢你的评论+1+1谢谢。答案是棘轮怪胎是第一个,但我感谢他们的回应。熟悉iOS吗?您知道NSURLConnection是否支持编码类型chunked吗?+1谢谢。答案是棘轮怪胎是第一个,但我感谢他们的回应。熟悉iOS吗?您知道NSURLConnection是否支持编码类型chunked吗?
    IOUtils.copy(new FileInputStream("some.file"), servletResponse.getOutputStream());