1

IOUtils.closeQuietly 似乎已被弃用,取而代之的是 TryWithResources,但是当我需要在异步事件侦听器中关闭资源时,它如何帮助我,比如当我使用 AmazonS3 和 TransferManager 上传文件时?

final String key = rs.getString("id");
final InputStream data = rs.getBinaryStream("data");
final long length = rs.getLong("length");
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(length);

Upload upload = transferManager.upload(s3bucketName, key, data, objectMetadata);
upload.addProgressListener((com.amazonaws.event.ProgressListener) p -> {
    switch (p.getEventType()) {
    case TRANSFER_COMPLETED_EVENT:
    case TRANSFER_FAILED_EVENT:
    case TRANSFER_CANCELED_EVENT:
        IOUtils.closeQuietly(data);
    default:
        break;
    }
});
4

1 回答 1

4

这是弃用它的Jira 问题。根据最近的几条评论,从 2020 年 10 月开始,它似乎没有被弃用。

更新:根据发行说明,它在 2.9.0 (2021-05-22) 中未被弃用。

于 2020-12-02T20:22:49.240 回答