Java IO系统——File类

来源:互联网 发布:广州医院挂号软件 编辑:程序博客网 时间:2024/05/11 06:05

     File类具有一个欺骗性的名字,通常你会认为它对应的是一个文件,但事实并非如此。它既可以代表一个特定的文件目录,也可以代表一个目录内一系列文件的名字,FilePath似乎是一个更好的名字。它代表了与平台无关的文件和目录,如果想在程序中操作文件和目录,都可以通过File类来完成,File能新建、删除、重命名文件和目录,File不能访问文件内容本身,如果要访问文件本身,则需要使用输入/输出流。

    

     一、操作目录


     目录,我们可以理解成具体的文件夹,下面我们通过两个例子认识一下File类关于目录的操作。

     

package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 1:传入一个不存在的路径File f1 = new File("test1");System.out.println(f1.exists());// 监测是否存在System.out.println(f1.isFile());// 监测是否是文件System.out.println(f1.isDirectory());// 监测是否是路径f1.mkdir();// 创建文件夹System.out.println(f1.exists());// 监测是否存在System.out.println("============================================");// 2:传入一个存在的路径File f2 = new File("test2");System.out.println(f2.exists());// 监测是否存在System.out.println(f2.isFile());// 监测是否是文件System.out.println(f2.isDirectory());// 监测是否是路径// 使用list方法来列出当前路径下的所有文件和路径String[] fileList = f2.list();System.out.println("======当前路径下所有文件和路径如下=====");for (String fileName : fileList) {System.out.println(fileName);}System.out.println("============================================");}}

     输出结果如下:

     

     我们通过以上的例子,可以总结到一下几点:

     1.file的构造构造函数既可以传入一个绝对路径,也可以传入一个相对路径。

     2.如果传入的字符串不存在对应的路径或文件,则file的既不能确定这个file代表文件还是路径。

     3.使用mkdir()方法创建一个文件。

     4.使用list()方法,得到该路径下的文件,得到是文件名组成的数组。


     二、操作文件

     

package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 3:传入一个不存在的文件File f3 = new File("myfile");System.out.println(f3.exists());// 判断是否存在System.out.println(f3.isFile());// 判断是否是文件System.out.println(f3.isDirectory());// 判断是否是文件f3.createNewFile();//创建文件System.out.println(f3.getName());// 获得文件的名字System.out.println(f3.getPath());// 获得文件的路径System.out.println(f3.getAbsolutePath());// 获得文件的绝对路径System.out.println("============================================");// 4:传入一个存在的文件File f4 = new File("E:\\Computer\\04JAVA\\JavaCode2\\CrazyJava\\file\\file.txt");System.out.println(f4.exists());// 判断是否存在System.out.println(f4.isFile());// 判断是否是文件System.out.println(f4.isDirectory());// 判断是否是文件System.out.println(f4.getName());// 获得文件的名字System.out.println(f4.getPath());// 获得文件的路径System.out.println(f4.getAbsolutePath());// 获得文件的绝对路径System.out.println("============================================");}}

     输出结果如下:

     


     通过上面的代码,我们可以知道:

     1.可以获得一个文件的相对目录(File()构造函数传入的参数),也可以得到文件的绝对路径。

     2.createNewFile()方法创建新的文件。


     三、文件过滤器


     我们知道文件一般都是有后缀名的,那么如何过滤下面一个目录下的文件呢,java为我们提供了FilenameFilter接口。

package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 5:传入一个存在目录,过滤改目录下的文件File f5 = new File("E:\\Computer\\04JAVA\\JavaCode2\\CrazyJava\\test2");MyFilter filter = new MyFilter(".txt");String[] files = f5.list(filter);for (String file : files) {System.out.println(file);}System.out.println("============================================");}static class MyFilter implements FilenameFilter {private String type;public MyFilter(String type) {this.type = type;}@Overridepublic boolean accept(File dir, String name) {return name.endsWith(type);}}}


     输出结果如下:

     

     从上面的程序,我们可以知道,要实现文件过滤,主要有以下步骤:

     1.实现FilenameFilter接口,重写accept方法。

     2.创建实现接口的类的实例,并指明过滤文件的类型。

     3.将接口的实现类作为File类的参数,得到该路径下过滤后的符合规定的条件的文件名数组。


     四、总结


     通过上面三部分的介绍,我们可以总结一下File这个类操作文件或目录的特点。

     1.公共:监测,判断文件/目录是否存在;是否是一个文件;是否是一个目录。

     2.文件:创建/删除文件;得到文件名;获得文件的相对路径和绝对路径。

     3.路径:创建/删除路径;得到路径下的文件名;过滤路径下的文件名。

     



0 0
原创粉丝点击