无法流式传输到写入程序



我正在尝试将文件直接流式传输到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是占用大部分空间的一个。

启用分块流解决了这个问题。((HttpURLConnection)urlconnection).setChunkedStreamingMode(1024*1024);

相关内容

  • 没有找到相关文章

最新更新