将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 }
原文地址:https://www.cnblogs.com/gw811/p/2718976.html