【发布时间】:2021-08-02 11:32:12
【问题描述】:
我编写了一个从 S3 对象读取信息的方法。 S3Object 中有多个记录,读取所有行的最佳方法是什么。它只读取对象的第一行吗?如何确保读取所有行?谁能给点建议?
while ((line = reader.readLine()) != null) {
map = objectMapper.readValue(line, new TypeReference<Map<String, Object>>() {});
public Map<String, Object> readS3ObjectData(@NonNull S3Object s3Object) throws IOException {
S3ObjectInputStream s3InputStream = s3Object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3InputStream, StandardCharsets.UTF_8));
String line = "";
Map<String, Object> map = new HashMap<>();
while ((line = reader.readLine()) != null) {
map = objectMapper.readValue(line, new TypeReference<Map<String, Object>>() {});
LOGGER.info("Create Object mapper successfully");
}
reader.close();
s3InputStream.close();
return map;
}
【问题讨论】:
-
有什么理由不能将项目放入 JSON 数组而不是使用 NDJSON?
-
感谢您的回复。将项目放入 JSON 数组是什么意思?你会更具体吗?我使用 map 的原因是很容易根据 key 获取值。
标签: java amazon-s3 buffer bufferedreader reader