我正在尝试将文件直接流式传输到Web服务。 为此,我使用
创建了一个Writer URL url = new URL("http://localhost:9200/tree/public/");
URLConnection urlconnection=url.openConnection();
urlconnection.setDoOutput(true);
((HttpURLConnection)urlconnection).setRequestMethod("POST");
((HttpURLConnection)urlconnection).setRequestProperty("Content-type", "text/html");
Writer out=new OutputStreamWriter(urlconnection.getOutputStream();
接下来我继续将数据写入其中,
while(<Read from file , line>){
out.write(line);
out.flush();
}
out.close();
在这里,我希望主内存不会用于存储整个文件内容。因为一次只能存在一行文件。
但是在执行代码时,内存使用量急剧上升,非常清楚,文件内容保存在主内存中。
在堆转储中发现PosterOutputStream
是占用大部分空间的那个。
答案 0 :(得分:1)
启用分块流解决了这个问题。 ((HttpURLConnection类)的URLConnection).setChunkedStreamingMode(1024 * 1024);