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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//今天学的IO,简单的读写以及过滤文档,还没学到递归.所以只能复制文件...其实这段代码只是把三个知识点都一起运用了,加深印象而已~!
package day18;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
//自定义一个过滤器
class JavaFind implements FilenameFilter{
        public boolean accept(File dir, String name) {    //看好是boolean类型哟~
                return name.endsWith(".txt");//返回通过过滤获取到的文件名后缀
        }
}
class Demo7整个盘的文件读写且过滤 {
        public static void main(String[] args) throws IOException {
                //找目录
                File dir=new File("F:\\Java homework\\workspac\\day19\\1\\");
                //用一个File类数组接收目录
                File[] files = dir.listFiles(new JavaFind());//JavaFind是自定义的过滤器
                for(File files1 : files){
                        System.out.println(files1);
                }
                //找文件,文件夹地址是可以修改的
                for(int i=0;i<files.length;i++){
                        File file1 = new File("F:\\Java homework\\workspac\\day19\\1\\"+files.getName());//需要读取的文件夹名称
                        File file2 = new File("F:\\Java homework\\workspac\\day19\\2\\"+files.getName());//需要写入的文件夹名称
                //建通道
                        FileInputStream fileInputStream = new FileInputStream(file1);
                        FileOutputStream fileOutputStream = new FileOutputStream(file2);
               
                //建缓冲数组,目前学到的最快读取方式.
                        byte[] b= new byte[1024];//1024可以自定义
                        int count = 0;
                        while((count=fileInputStream.read(b))!=-1){
                                fileOutputStream.write(count);
                        }
               //关闭资源
                        fileOutputStream.close();
                        fileInputStream.close();
                }       
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马