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);
}