zoukankan      html  css  js  c++  java
  • java笔试题: ——将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

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

    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    public class DirCopy {
        public static void main(String[] args) throws Exception{
            dirZipCopy("E:/source","F:/source.zip");
        }
        /**
         * 文件夹压缩备份
         * @param fromDir 要压缩备份的文件夹
         * @param toDir 压缩至的路径
         * @throws Exception
         */
        public static void dirZipCopy(String fromDir,String toDir) throws Exception{
            //创建ZIP输出流
            ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(toDir));
            //递归处理文件夹
            zipCopy(new File(fromDir),zos,"");
            zos.close();
        }
        /**
         * 压缩复制文件
         * @param fromDir 要压缩的文件
         * @param zos ZIP输出流
         * @param path 相对于ZIP文件的路径
         * @throws Exception
         */
        private static void zipCopy(File fromDir,ZipOutputStream zos,String path) throws Exception{
            if(fromDir.exists()){
                if(fromDir.isDirectory()){
                    path += fromDir.getName()+"/";
                    zos.putNextEntry(new ZipEntry(path));
                    File[] files=fromDir.listFiles();
                    if(files != null){
                        for(int i=0;i<files.length;i++){
                            zipCopy(files[i],zos,path);
                        }
                    }
                }else{
                    //putNextEntry():开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
                    zos.putNextEntry(new ZipEntry(path+fromDir.getName()));
                    InputStream is=new FileInputStream(fromDir);
                    int len=0;
                    byte[] b=new byte[1024];
                    while((len=is.read(b))!=-1){
                        zos.write(b,0,len);
                        zos.flush();
                    }
                    is.close();
                }
            }
        }
    }

    文件复制

    public class FileCopy2 {
        public static void main(String[] args) {
            fileCopy("F:/abc.rmvb", "F:/source/abc.rmvb");
        }
        public static void fileCopy(String srcFileSource,String destFileSource){
            try {
                //读取原文件内容
                FileInputStream in=new FileInputStream(srcFileSource);
                FileOutputStream out=new FileOutputStream(destFileSource);
                int len=0;
                byte[] indata=new byte[1024*10];
                while((len=in.read(indata))!=-1){
                    out.write(indata);
                }
                in.close();
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Java语言基础学习笔记——基础语法
    JAVA语言基础——java的编译和运行
    Java语言基础 ——注释
    Java语言基础—— 在控制台输入
    再也不为正则表达式愁了,只是调用几个函数的事情
    Java语言基础——数据类型转换
    Java语言基础学习笔记——面向对象
    Java语言基础——数据类型
    二进制,十进制,八进制,十六进制之间的转换
    Java语言基础——java 变量
  • 原文地址:https://www.cnblogs.com/zjfjava/p/5996636.html
Copyright © 2011-2022 走看看