//今天学的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();
}
}
}
|
|