会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132452个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1321楼

package cn.io;

import java.io.*;

/**
 * 测试复制文件夹
 */
public class TestCopyFile {
    public static void main(String[] args) {
        //File srcFile = new File("D:\\答辩准备.docx");
        //File targetFile = new File("E:\\答辩准备.docx");
        //先复制一个文件
        //copyFile(srcFile,targetFile);
        //复制正个目录
        File srcDir = new File("E:\\百战程序员");
        File targetDir = new File("D:\\百战程序员");
        copyDir(srcDir,targetDir);
    }

    //复制整个目录
    public static void copyDir(File srcDir,File targetDir){
        //(1)如果目标目录不存在,则需要使用File类的方法进行创建目录
        if (!targetDir.exists()){
            targetDir.mkdir();
        }
        //(2)获取指定目录下的所有File对象
        File[] files = srcDir.listFiles();

        //(3)遍历分解指定目录下的文件
        for (File file :files){
            if (file.isFile()){
                /**
                 * 调用赋值文件方法
                 * 1.srcDir--->E:\\API   拼接    E:\\Api\\XXXXX.xxx文件
                 * 2.targetDir--->D:\\API   拼接    E:\\Api\\XXXXX.xxx文件
                 */
                copyFile(new File(srcDir+"\\"+file.getName()),new File(targetDir+"\\"+file.getName()));

            }else {
                copyDir(new File(srcDir+"\\"+file.getName()),new File(targetDir+"\\"+file.getName()));
            }
        }

    }

    /**
     * 复制一个文件
     * @param srcFile
     * @param targetFile
     */
    public static void copyFile(File srcFile, File targetFile){
        //(1)提高读取效率,从数据源
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(new FileInputStream(srcFile));
            //(2)提高写入效率,写到目的地
            bos = new BufferedOutputStream(new FileOutputStream(targetFile));
            //(3)边读边写
            byte[] buf = new byte[1024];        //中转站
            int len = 0 ;
            while((len=bis.read())!=-1){
                bos.write(buf,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            //(4)关闭
            try {
                if (bos!=null){
                    bos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                if (bis!=null){
                    bis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }
}

老师,我执行这段代码,没有报错,但是硬盘差点爆了,硬盘快满了,程序还没有停,是哪里出问题了吗?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1322楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1323楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1324楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 1325楼

net.rar

图片.png

图片.png

图片.png

老师为啥我不管怎么输入也没有返回给这个客户端,其他客户端也没实现共享,这是为什么呢

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程 1327楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 1328楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程和并发编程(旧) 1330楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 1333楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 1334楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 1335楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637