File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等。File类的对象主要用来获取文件本身的一些信息,如文件所在目录、文件的长度、文件读写权限等。数据流可以将数据写入到文件中,而文件也是数据流最常用的数据媒体。

Java File类的功能非常强大,利用java基本上可以对文件进行所有操作。文本将对Java File 文件操作的类详细的分析,并将File类中的常用方法进行简单介绍。

使用createNewFile()创建文件

File file1 = new File("test1.txt");
		file1.createNewFile();

File类中的mkdir和mkdir的区别

mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹


		File file2 = new File("D:\\cmz\\test2");
		file2.mkdir();
		File file3 = new File("D:\\cmz\\test2\\test3.txt");
		file3.mkdirs();

File.separator方法

在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常。

File中还有几个与separator类似的静态常量,与系统有关,在编程中应尽量使用。

File test = new File("D:");
		String strFile = File.separator+"cmz"+test.separator+"test2"+test.separator+"test4.txt";
		File file4 = new File(test,strFile);
		file4.createNewFile();
		file4.delete();

File.deleteOnExit和File.createTempFile

File.createTempFile是在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称

File.delete无需解释,为直接删除,deleteOnExit解释为:在虚拟机终止时,请求删除此抽象路径名表示的文件或目录

for(int i=0;i<5;i++)
		{
			File f=File.createTempFile("chengshit39",".tmp");
			
			f.deleteOnExit();
		}
		Thread.sleep(9000);

File.list 和File.lists:

list()方法 : 会返回一个字符数组,将制定路径下的文件或文件夹名字存储到String数组中。因为其返回的是一个String类型的数组,所以它也就只是一个名字而已(后面要讲到的listFiles()及其重载方法则不同,它们返回的是File类型的对象,所以具有其全部的属性和方法)。有以下两种重载方式:

1)、String[]  list()

2)、String[]  list(FilenameFilter filter)

而listFiles()方法返回的是一个File类的引用,它具有类的所有属性和方法,比如:String getName()方法就能够返回该文件的String类型的文件名(名字而已)。

因此,遍历文件夹中所有文件,包括子文件夹中的文件时,必须用listFiles()方法


File file=new File("D:\\cmz\\test2");
  
        System.out.println("list()方法遍历的结果:");
        String[] strings=file.list();
        for (String string : strings) {
            System.out.println(string);
        }
        System.out.println();
       
        System.out.println("listFiles()方法遍历的结果:");
        File[] files=file.listFiles();
        for (File file2 : files) {
            System.out.println(file2);
        }