java - 将批处理流式传输到 CSV java 7
问题描述
目前我想将一系列对外部服务器的调用结果转换为 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());
这目前工作正常,但是,当页面数很高时,文件下载不会开始,直到整个对象都在内存中。
我现在想知道它是否可行以及如何动态生成字节流,以便在生成主列表时开始下载
谢谢你
编辑:
callServer 调用休息服务 parseResponse,将服务响应解析为 List> generateCSV 将列表解析为 CSV 格式的字符串 Filedownload 来自 Zul Api
解决方案
您List<List<String>> subList = parseResponse(callServer(int from, int number));
阻止后续语句,因此您必须等待。
如果要将响应字节流式传输到本地文件,则必须InputStream
从 HttpServletResponse 访问。并在您从响应中读取时处理您的字节