我嘗試使用下面的代碼從網址下載PDF文件。它在文件大小小於8k時工作正常,如果文件大小達到8k,它會下載PDF文件,但文件不可讀。java下載文件不工作文件大小是否超過8K?
代碼
InputStream in = new BufferedInputStream(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1!=(n=in.read(buf)))
{
out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();
FileOutputStream fos = new FileOutputStream(new File("C:\\temp\\TEST.pdf"));
fos.write(response);
fos.close();
System.out.println("Download Finished");
可能重複的[如何在java中沒有內存問題下載大文件](http://stackoverflow.com/questions/7106775/how-to-download-large-files-without-memory-issues-in -java) – StackFlowed 2014-09-23 18:25:41
-1!=(n = in.read(buf)對我來說看起來很奇怪因爲它是c風格,我猜?爲什麼不是(n = in.read(buf)!= -1 – 2014-09-23 18:25:47
我用過你的代碼下載http://www.pdf995.com/samples/pdf.pdf(424 K),它運行良好。如果你的URL需要某種重定向,你最終會下載一個html頁面而不是你的pdf 。所以檢查你保存的文件,並檢查它是不是一個HTML文件。 – Leo 2014-09-23 18:31:18