Java 从ZipOutputStream创建文件
我正在使用下面的代码创建一个Zip文件。我想在createZipFromFiles方法中将创建的Zip作为文件对象返回,以便在其他地方使用。这可以从FileOutputStream或ZipOutputStream完成吗Java 从ZipOutputStream创建文件,java,file,zip,fileoutputstream,zipoutputstream,Java,File,Zip,Fileoutputstream,Zipoutputstream,我正在使用下面的代码创建一个Zip文件。我想在createZipFromFiles方法中将创建的Zip作为文件对象返回,以便在其他地方使用。这可以从FileOutputStream或ZipOutputStream完成吗 public File createZipFromFiles(String zipName, List<File> files) { try { FileOutputStream fos = new FileOutputStream(zipNa
public File createZipFromFiles(String zipName, List<File> files) {
try {
FileOutputStream fos = new FileOutputStream(zipName);
ZipOutputStream zos = new ZipOutputStream(fos);
for (File file : files) {
addToZipFile(file.getName(), zos);
}
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void addToZipFile(String fileName, ZipOutputStream zos) throws FileNotFoundException, IOException {
System.out.println("Writing '" + fileName + "' to zip file");
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
ZipEntry zipEntry = new ZipEntry(fileName);
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();
}
public File createZipFromFiles(字符串zipName,列表文件){
试一试{
FileOutputStream fos=新的FileOutputStream(zipName);
ZipoutStream zos=新ZipoutStream(fos);
用于(文件:文件){
addToZipFile(file.getName(),zos);
}
返回null;
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
公共静态void addToZipFile(字符串文件名,zipoutpstream zos)引发FileNotFoundException,IOException{
System.out.println(“将“'+fileName+“'写入zip文件”);
文件=新文件(文件名);
FileInputStream fis=新的FileInputStream(文件);
ZipEntry ZipEntry=新ZipEntry(文件名);
佐斯·普特内森特里(齐彭特里);
字节[]字节=新字节[1024];
整数长度;
而((长度=fis.read(字节))>=0){
写入(字节,0,长度);
}
zos.closeEntry();
fis.close();
}
返回即可
new File(zipName);
因为你已经有了zip文件名