下载的文件大小比发送的文件大

时间:2016-06-01 10:39:00

标签: java http io byte bytearray

我有一个http请求,它从服务器获取一个文件,然后用Java下载它。问题是我下载的文件比发送的文件大2个字节。

这就是我编写响应文件的方式。

InputStream input = connection.getInputStream();
    byte[] buffer = new byte[128];
    int n = - 1;

    OutputStream output = new FileOutputStream(downloadsPath + formattedHeaders[0].toString());
    while ( (n = input.read(buffer)) != -1) 
    {
        output.write(buffer, 0, n);
    }
    input.close();
    output.close();

我使用文件大小,然后将其与标题中发送的文件大小进行比较,以查看是否已下载完整文件。服务器大小很好,并且正在获得正确的大小并将其添加到标头中。不知何故,当我正在编写文件时,它会获得额外的2个字节。

1 个答案:

答案 0 :(得分:0)

响应与文件不匹配的原因是因为发送的响应也连接了“Ok”。转换为ASCII时的最后两个字节[79,107]表示“Ok”。在服务器端删除此“确定”,因此未发送它可以解决问题。