Не в состоянии передать на писателя - PullRequest
1 голос
/ 04 марта 2012

Я пытаюсь передать файл напрямую на веб-сервис.Для этого я создал 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 это тот, который занимает большую часть пространства.

1 Ответ

1 голос
/ 04 марта 2012

Разрешение потоковой передачи решило проблему. ((HttpURLConnection) URLConnection) .setChunkedStreamingMode (1024 * 1024);

...