这是我得到的警告:
我尝试对资源使用try,但S3ObjectInputStream似乎无法通过此方法关闭。
try (S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah blah
}
我还尝试了下面的代码并显式关闭,但这也不起作用:
S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah
s3ObjectInputStream.close();
s3object.close();
}
任何帮助,将不胜感激。
PS:我只从S3中读取文件的两行,并且文件中包含更多数据。
最佳答案
通过其他媒介得到了答案。在这里分享:
该警告表明您调用了close()而不读取整个文件。这是有问题的,因为S3仍在尝试发送数据,并且您使连接处于悲哀状态。
这里有两个选择: