将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

 

 1 import java.io.*;  2 import java.util.zip.ZipEntry;  3 import java.util.zip.ZipOutputStream;  4 
 5 public class DirCopy {  6     public static void main(String[] args) throws Exception{  7         dirZipCopy("E:/source","F:/source.zip");  8  }  9     /**
10  * 文件夹压缩备份 11  * @param fromDir 要压缩备份的文件夹 12  * @param toDir 压缩至的路径 13  * @throws Exception 14      */
15     public static void dirZipCopy(String fromDir,String toDir) throws Exception{ 16         //创建ZIP输出流
17         ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(toDir)); 18         //递归处理文件夹
19         zipCopy(new File(fromDir),zos,""); 20  zos.close(); 21  } 22     /**
23  * 压缩复制文件 24  * @param fromDir 要压缩的文件 25  * @param zos ZIP输出流 26  * @param path 相对于ZIP文件的路径 27  * @throws Exception 28      */
29     private static void zipCopy(File fromDir,ZipOutputStream zos,String path) throws Exception{ 30         if(fromDir.exists()){ 31             if(fromDir.isDirectory()){ 32                 path += fromDir.getName()+"/"; 33                 zos.putNextEntry(new ZipEntry(path)); 34                 File[] files=fromDir.listFiles(); 35                 if(files != null){ 36                     for(int i=0;i<files.length;i++){ 37  zipCopy(files[i],zos,path); 38  } 39  } 40             }else{ 41                 //putNextEntry():开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
42                 zos.putNextEntry(new ZipEntry(path+fromDir.getName())); 43                 InputStream is=new FileInputStream(fromDir); 44                 int len=0; 45                 byte[] b=new byte[1024]; 46                 while((len=is.read(b))!=-1){ 47                     zos.write(b,0,len); 48  zos.flush(); 49  } 50  is.close(); 51  } 52  } 53  } 54 }

 

 文件复制

 

 1 public class FileCopy2 {
 2     public static void main(String[] args) {
 3         fileCopy("F:/abc.rmvb", "F:/source/abc.rmvb");
 4     }
 5     public static void fileCopy(String srcFileSource,String destFileSource){
 6         try {
 7             //读取原文件内容
 8             FileInputStream in=new FileInputStream(srcFileSource);
 9             FileOutputStream out=new FileOutputStream(destFileSource);
10             int len=0;
11             byte[] indata=new byte[1024*10];
12             while((len=in.read(indata))!=-1){
13                 out.write(indata);
14             }
15             in.close();
16             out.close();
17         } catch (Exception e) {
18             e.printStackTrace();
19         }
20     }
21 }

 

 

你可能感兴趣的:(source)