Потоковое пакетного процесса в CSV Java 7 - PullRequest
0 голосов
/ 04 мая 2018

В настоящее время я хочу передать результат серии вызовов на внешний сервер в CSV-загрузку.

List<List<String>> masterList;
for(int i = 0 ; i<numberOfPages ; i++){
    List<List<String>> subList = parseResponse(callServer(int from, int number));
    masterList.addAll(sublist);
}
Filedownload.save(generateCVS(masterList).getBytes());

В настоящее время это работает нормально, однако, когда количество страниц велико, загрузка файла не начинается, пока весь объект не окажется в памяти.

Теперь я хочу, если это возможно, и как генерировать поток байтов на лету, чтобы загрузка могла начаться во время генерации мастер-листа

спасибо

Edit:

callServer звонит в службу отдыха parseResponse, анализирует ответ службы в список> generateCSV анализирует список в форматированную строку CSV Filedownload от Zul Api

1 Ответ

0 голосов
/ 04 мая 2018

Ваш List<List<String>> subList = parseResponse(callServer(int from, int number)); блокирует последующие операторы, поэтому вам придется подождать.

Если вы хотите передать ваши ответные байты в ваши локальные файлы, вам нужно получить доступ к InputStream из HttpServletResponse. И обрабатывать ваши байты, как вы читаете из ответа

...