我目前正在尝试使用ZipOutStream创建zipfile,并将其作为bytearrayoutputstream返回。
但是,我现在想知道如何为zip本身分配文件名。
现在,它总是以我不想要的名称“application.zip”生成。
我尝试使用fileoutputstream分配它,但在解码后,它仍然使用默认命名,因此没有运气。
代码如下:
private static ByteArrayOutputStream convertZipToByte(
final String fname, final String content) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
FileOutputStream fos = new FileOutputStream("usethisinstead.zip");
baos.writeTo(fos);
final ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry entry = new ZipEntry(fname);
zos.putNextEntry(entry);
zos.write(content.getBytes());
zos.closeEntry();
return baos;
} catch (IOException ex) {
// throwing error ex here
}
}
1条答案
按热度按时间ikfrs5lh1#
您应该始终在正确的点关闭流,尝试使用资源自动处理此问题。
从文件写入中分离zip使逻辑更简单,并可重复使用nio调用,如下所示:
为了调用上述命令,请创建一个文件系统
Path
例如: