假设我有一个com.liferay.portal.kernel.repository.model.FileEntry
实例fileEntry
,我想复制。
我可以使用
实现这一目标com.liferay.portlet.documentlibrary.service.DLAppServiceUtil.addFileEntry(...,java.io.InputStream is,...)
在这种情况下,我使用InputStream
从FileEntry
获取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);
}
}
}
答案 0 :(得分:0)
你应该但不必。
较早版本的Java要求您关闭InputStream
。但是在Liferay支持的所有JAVA版本中,一旦没有更多引用,流就会自动关闭。但是,你受垃圾收集器及其日程安排的支配。