FileEntry.getContentType()需要关闭吗?

时间:2014-11-20 12:50:18

标签: java io liferay inputstream liferay-6

假设我有一个com.liferay.portal.kernel.repository.model.FileEntry实例fileEntry,我想复制。

我可以使用

实现这一目标
com.liferay.portlet.documentlibrary.service.DLAppServiceUtil.addFileEntry(...,java.io.InputStream is,...)

在这种情况下,我使用InputStreamFileEntry获取fileEntry.getContentStream()

 FileEntry fileEntry;
 InputStream inputStream = fileEntry.getContentStream();

 FileEntry fileEntry2 = DLAppServiceUtil.addFileEntry(repositoryId, folder.getFolderId(), fileName, mimeType, fileName, "file was created in " + new Date(), fileName + " updated", inputStream, size, serviceContext);

问题:我是否需要在该InputStream上执行close

StreamUtil.cleanUp(inputStream);

其中StreamUtil.cleanUp

public static void cleanUp(InputStream inputStream) {
    try {
        if (inputStream != null) {
            inputStream.close();
        }
    }
    catch (Exception e) {
        if (_log.isWarnEnabled()) {
            _log.warn(e, e);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你应该但不必。

较早版本的Java要求您关闭InputStream。但是在Liferay支持的所有JAVA版本中,一旦没有更多引用,流就会自动关闭。但是,你受垃圾收集器及其日程安排的支配。