一,文件类File类
File类构造方法
第一种:File(String path) ,path指明新创建File对象对应的文件或目录的路径,如:
File f1=new File("C:/myProgram/Java"); //绝对路径下新建文件,指定目录 File f2=new File(/myProgram/Java"); //相对路径下新建文件,当前目录下的子目录myProgram
第二种:File(String path, String name) , path指定文件或目录路径,name指定文件或目录名
File f1=new File("/docs", "file.dat"); //相对路径为\docs,文件名为file.dat
第三种:File(String dir, String name) , dir指定已有的File对象的路径,name指定该文件名或目录名
String sdir="myProgram"+System.dirSep+"Java"; String sfile="FileIO.data"; File Fdir=new File(sdir); File Ffile=new File(Fdir, sfile);
创建与删除文件方法
- 创建文件:public boolean createNewFile(),创建一个新的空文件,其文件名命名为对应的抽象目录名;
- 重命名文件:public boolean renameTo(File newFile),当文件重命名成newFile对应的文件名;
- 删除文件:public void delete( );
- 创建目录:public boolean mkdir( );
获取文件或目录属性方法
- 判断文件或目录是否存在:public boolean exists( ) ,
- 判断是对象是否是有效文件:public boolean isFile( ),
- 判断是对象是否是有效目录:public boolean isDirectory( ),
- 获取文件的读写属性:public boolean canRead( ) , public boolean canWrite() ,
- 比较两文件或目录是否相同:public boolean equals(File f),
- 获取文件或目录路径:public String getPath(),
- 获取文件或目录名称:public String getName(),
- 获取文件的长度:public long length(),返回文件的字节数;
获取目录成员
- File类有一个Sting list[ ]()方法,可以将目录中所有的文件名保存在字符数组中,如
File f=new File("C:/jdk") //创建File类 String s[]=f.list(); //将jdk目录下所有的文件或目录名保存到s字符数组中
- File类有一个Sting list[ ]()方法,可以将目录中所有的文件名保存在字符数组中,如
过滤文件名
- 通过创建一个实现FilenameFilter接口的类,在该类中编写需保留的文件名和后缀名的方法;
FilenameFilter过滤器接口是实现文件过滤功能必须实现的接口;
class FilenameFilterDemo implements FilenameFilter{ private String name; //定义保留的文件名 private String ext; //定义保留的拓展名 public FilenameFilterDemo (String name ,String ext){ //过滤器构造方法,入参是保留文件名和后缀名 this.name=name; this.ext=ext; } public boolean accept(File dir, String filename){ //accept成员方法是过滤的核心函数 boolean fString=true; if(name!=null) fString &=filename.startsWith(name); if(ext!=null) fString &=filename.endsWith("."+ext); return fString; } }
对创建的过滤器类实例化对象后,就要用File类实例对象调用list方法,并将过滤器类对象作为list函数的入口参数,此时list在获取字符串数组目录中所有的成员时,会自动过滤掉不符合name和ext的文件名;如,
FilenameFilter x=new FilenameFilterDemo("java","exe"); //新建过滤器对象,设置保留以java开头,并且以.exe结尾的文件 File f=new File("c:/jdk/bin"); //新建File类对象,设置目录为bin String s=f.list(x); //将过滤后的文件名字符串数组存放于s中