我正在尝试使用 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 对象,以便可以将每行数据添加为对象数组