Я пытаюсь передать файл непосредственно в веб-службу. Для этого я создал 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
- это тот, кто держит большую часть пространства.
О какой памяти вы говорите? Будет некоторая неизбежная буферизация под обложками. –
Я говорю о памяти в ГБ. Я не забочусь о небольшой буферизации. ЕСЛИ это «немного» –
Что-то еще не так, если вы видите память в диапазоне GB. Мы не можем сказать более подробно. –