📄 zipfile.java
字号:
package chapter18;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipFile{
public static void main(String[] args){
ArrayList fileNames = new ArrayList(); // 存放文件名,并非含有路径的名字
ArrayList files = new ArrayList(); // 存放文件对象
try{
FileOutputStream fileOut = new FileOutputStream("D:/ZipOutOfPath.zip");
ZipOutputStream outputStream = new ZipOutputStream(fileOut);
File rootFile = new File("D:/temp");
listFile(rootFile, fileNames, files);
for (int loop=0; loop<files.size(); loop++){
/*
* files.size() 对象的长度不是用length()
*/
FileInputStream fileIn = new FileInputStream((File)files.get(loop));
outputStream.putNextEntry(new ZipEntry((String)fileNames.get(loop)));
byte[] buffer = new byte[1024];
while (fileIn.read(buffer) != -1){
outputStream.write(buffer);
}
outputStream.closeEntry();
fileIn.close();
}
outputStream.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
static void listFile(File parentFile, List nameList, List fileList)
{
if (parentFile.isDirectory())
/*
* 看是不是目录,条件是如果是目录
*/
{
File[] files = parentFile.listFiles();
/*
* files[]里边存的具体是”D:/temp“,当然是二级
*/
for (int loop=0; loop<files.length; loop++)
{
listFile(files[loop], nameList, fileList);
}
}
else
/*
* 如果不是目录
*/
{
fileList.add(parentFile);
/*
* 存放文件对象
*/
nameList.add(parentFile.getName());
/*
* 存入文件名
*/
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -