0

我正在尝试使用 sprintboot 的 resttemplate 下载 csv 文件并将 responseEntity 转换为 byte[]

目前我的 api 在邮递员中显示文件的内容如下

Content-Disposition: form-data; name="file"
Content-Type: application/octet-stream
Content-Length: xxx

Col1,Col2,Col3,Col4,Col5
1,2,3,4,5
11,22,33,44,55
111,222,333,444,555

csv 最多可以包含 20K 条记录

我的 api 如下所示

ResponseEntity<String> response  = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
InputStream inputStream = new ByteArrayInputStream(response.getBody().getBytes(Charset.forName("UTF-8")));

if(!StringUtils.isEmpty(inputStream)) {
   ByteArrayOutputStream buffer = new ByteArrayOutputStream();
   int nRead;
   byte[] data = new byte[1024];
   while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
       buffer.write(data, 0, nRead);
   }
   buffer.flush;
   byteArray = buffer.toByteArray();
}
return byteArray;

有人可以帮助如何将此 byteArray 或 ResponseEntity 转换为 java 对象,以便可以将每行数据添加为对象数组

4

0 回答 0