首页 > 解决方案 > 将批处理流式传输到 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

标签: javalistdownloadstreaminputstream

解决方案


List<List<String>> subList = parseResponse(callServer(int from, int number));阻止后续语句,因此您必须等待。

如果要将响应字节流式传输到本地文件,则必须InputStream从 HttpServletResponse 访问。并在您从响应中读取时处理您的字节


推荐阅读