File类
1.File类和IO流的区别。
(1) IO流:对文件的内容进行操作,读取的内容或是将内容写入到文件中。
(2) File类:对文件本身进行操作,例如:删除文件、更改文件名等。
注意:File类本身不具有操作文件的功能,类中的方法提供了操作文件的功能。
2.File类的方法:
File f=new File ("1.txt");
f.createNewFile();//创建文件
mkdir();//创建目录(文件夹)
delete();//删除(删除目录或者文件)
exists();//文件对象所代表的文件(或者目录)是否存在
isDirectory();//判断文件对象所代表是否是目录f
isFile();//判断文件对象代表的是否是文件
String getName() : 获取文件名,带有扩展名。
【重点】f.getAbsolutePath();//(syso(绝对路径);)
f.listFiles();//目录下所有文件
File f=new File ("1.txt");
File[ ]fs=f.listFiles();//返回的File数组
//打印根目录所有文件和目录
for(File f:fs){
if(f.isFile())System.out.println("文件"+f.getNmae);
if(f.isDirectory())System.out.println("目录"+f.getNmae);
}
过滤方法 File[] listFiles(FileFilter filter)
File[] listFiles(FileFilter filter)
//返回的是字符串数组,方法里的参数FileFilter是一个接口名。
//要用实现类实现这个接口
/*
接口中的方法 boolean accept(File dir,String name)
参数: dir - 被找到的文件所在的目录。 name - 文件的名称。
返回: 当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。
*/
File f=new File ("F://corejava");
FileFilter f1=new MyFilter();//实现类
File[ ]f2=new f.listFiles(f1);//用数组调用方法
//
//匿名累不累实现
File[]f1=f.listFiles(new FileFiltetr(){
public boolean accept(File f){
if(f.isDirectory())return false;
String name=f,getName();
if(name.endWith(".zip"))return true;//endwhith判断是否是以**结尾
else return false;
}
})
//打印根目录所有文件和目录
for(File f:fs){
if(f.isFile())System.out.println("文件"+f.getNmae);
if(f.isDirectory())System.out.println("目录"+f.getNmae);
}
class Myfilter implements FileFilter{//实现类
public boolean accept(File F){//文件中每一个文件
//接口回调,负责实现FileFiltet方法,以每一个文件或目录作为参数调用
if(f.isDirectory())return false;
String name=f,getName();
if(name.endWith(".zip"))return true;//endwhith判断是否是以**结尾
else return false;
}
}