我有一个典型的实现,如下所示,它使用linux centos 6.9环境中的xlsx文件文件夹编写一个zip文件。问题在于,有时由于某个文件,zip.write()操作似乎会无限期地挂起并增长zip文件,从而导致磁盘空间在环境中耗尽。
我想实现一个故障保险柜,以某种方式检测到写入操作错误地增长了zip文件,从而阻止了这种情况的发生。 Java中有一种干净的方法可以实现这一目标吗?
FileInputStream fis = new FileInputStream(file);
// we want the zipEntry's path to be a relative path that is relative
// to the directory being zipped, so chop off the rest of the path
String zipFilePath = file.getCanonicalPath().substring(
directoryToZip.getCanonicalPath().length() + 1,
file.getCanonicalPath().length());
ZipEntry zipEntry = new ZipEntry(zipFilePath);
zos.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zos.write(bytes, 0, length);
}
zos.closeEntry();
fis.close();