2
我想將HTTP請求中的響應寫入文件。不過,我希望將響應流式傳輸到物理文件,而無需等待整個響應被加載。以Java流式傳輸HTTP響應
我實際上會向JHAT服務器發出請求,以便從轉儲中返回所有字符串。我的瀏覽器在響應完成之前掛起,因爲有70,000個這樣的對象,我想將它們寫入文件以便我可以掃描。
由於事先
我想將HTTP請求中的響應寫入文件。不過,我希望將響應流式傳輸到物理文件,而無需等待整個響應被加載。以Java流式傳輸HTTP響應
我實際上會向JHAT服務器發出請求,以便從轉儲中返回所有字符串。我的瀏覽器在響應完成之前掛起,因爲有70,000個這樣的對象,我想將它們寫入文件以便我可以掃描。
由於事先
從HTTP流中讀取數據的有限量的,並將其寫入到文件中的流。這樣做直到處理完所有數據。
下面是演示原理的示例代碼。在這個例子中,我不處理任何I/O錯誤。我選擇了一個8KB的緩衝區,比一次處理一個字節的速度快,但仍然限制了在每次迭代過程中拉入RAM的數據量。
final URL url = new URL("http://example.com/");
final InputStream istream = url.openStream();
final OutputStream ostream = new FileOutputStream("/tmp/data.txt");
final byte[] buffer = new byte[1024*8];
while (true) {
final int len = istream.read(buffer);
if (len <= 0) {
break;
}
ostream.write(buffer, 0, len);
}