为什么pdf文件下载已损坏?

时间:2012-09-06 16:00:30

标签: java http url file-io download

我写了一个小程序,用于通过url下载文件。我可以正常打开所有其他文件格式,但对于下载的pdf,这是不可能的。

public static void saveFile(String fileUrl, String destinationFile) throws IOException {
    URL url = new URL(fileUrl);
    InputStream is = url.openStream();
    OutputStream os = new FileOutputStream(destinationFile);

    byte[] b = new byte[2048];
    int length;

    while ((length = is.read(b)) != -1) {
        os.write(b, 0, length);
    }
    os.flush();
    is.close();
    os.close();
}

我是否需要特殊的方式处理PDF格式下载?

当我尝试通过浏览器中的URL选择pdf时,它显示正确

修改

为代码添加了flush(),仍然没有成功

尝试在浏览器(FF)中打开损坏的pdf会返回错误:

  

文件不以'%PDF - '

开头

Adob​​e Reader返回:

  

文件无法打开,因为它不是受支持的文件类型   或者因为文件已经损坏。

损害赔偿pdf比原来的

更小(约80%)

1 个答案:

答案 0 :(得分:1)

损坏的pdf文件里面有网站html代码。