?? 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 + -