什么是IO操作?
数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了。那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘、光盘、U盘等)上。
当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。
当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。因此我们把这种输入和输出动作称为IO操作
File的创建
创建File实际上是对路径的封装Filefile=new File(parent,"a.txt");
判断文件是否存在file.exists() 判断是文件还是目录(也就是文件夹)
f.isFile() 判断是文件 f.isDirectory() 判断是否是目录
需求:判断文件是否是.doc或是.txt文件,并将这些文件过滤出来。
使用方法:文件过滤器:使用方法FileFilter()
Filea=new File("F:\\abc\\a.txt")//文件路径
a.getName();//获取路径中的最后部分的名字
Filefile=new File("文件路径");
File[]fileArr=file.listFiles(new MyFilter());
//增强for循环进行遍历
for(File f :fileArr){
System.out.println(f);
}
//建立一个类,实现滤镜的功能
public classMyFilter implements FileFilter{
publicboolean accept(File pathname) {
/*
* pathname 接受到的也是文件的全路径
*对路径进行判断,如果是.doc文件,返回true,不是java文件,返回false
*文件的后缀结尾是.doc
*/
Stringname = pathname.getName();
If(name.endsWith(.txt) or name.endsWith(.doc)){
Return true;
}
}
}
借此介绍一下匿名内部类,可以简化我们的代码.
匿名内部类,不需要我们再重新创造一个类
New 父类或是接口 平常不常用
File[]fileArr=file.listFiles(new MyFilter(){
publicboolean accept(File pathname) {
Stringname = pathname.getName();
If(name.endsWith(.txt) or name.endsWith(.doc)){
Return true;
}
}
});