A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
* 题目:
        编写一个程序,将指定目录下所有java文件拷贝到另一个目录中
               
*
*
*
*/
public class Demo04 {
        public static void main() throws IOException{
                //创建file对象
                File file1 = new File("E:\\黑马\\day02");
               
                File file2 = new File("D:\\黑马");
               
                System.out.println("执行了");
                copyFile(file1,file2);
        }
        public static void copyFile(File file1,File file2) throws IOException{
               
                //文件夹
                File[] files = file1.listFiles();
                //遍历file数组,得到每个file对象
                for(File file : files){
                        //判断file对象是否为文件
                        if(file.isFile()){
                                //获取file的绝对路径
                                String fileName = file.getAbsolutePath();
                               
                                System.out .println("执行了");
                               
                               
                                //file的绝对路径中是否包含java
                                if(fileName.contains("java")){
                                        /*//创建输入流
                                        BufferedReader in = new BufferedReader(new FileReader(file));
                                        //创建输出流
                                        BufferedWriter out = new BufferedWriter(new FileWriter(file2));
                                        //将输入流中的数据写到输出流中
                                        String str = null;
                                        while((str = in.readLine()) != null){
                                                out.write(str);
                                                //刷新流
                                                out.flush();*/
                                               
                                                //创建输入流
                                                BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
                                                //创建输出流
                                                BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file2));
                                                //将输入流中的数据写到输出流中
                                                int len = -1;
                                                byte[] str = new byte[1024];
                                                while((len = in.read(str)) != -1){
                                                        out.write(str,0,len);
                                                        //刷新流
                                                        out.flush();
                                                }
                                               
                                                System.out .println("执行了");
                                                //关闭流
                                                in.close();
                                                out.close();
                                        }
                                }else{
                                        copyFile(file,file2);
                        }
                }
       
               
        }
}

1 个回复

倒序浏览
1.判断是否是java文件 :  if(file.isFile()&&file.getName().endWith(".java")){

2.字符流那一段可以不要
3,int  len   ; 这样就可以了
4,files   要做个非空判断
5, BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file2,file));
6,目标文件夹是否存在?
多看看视频吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马