13. File 类
它既能代表一个文件的名称,又能代表一个目录下一组文件的名称。常用于对文件或文件夹的操作。
File对象也可以作为参数传递给流的构造函数。
File(File parent,String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新File
实例
File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新File
实例。
File(String parent,String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新File
实例。
File file = new File("c:\\abc\\a.txt");-------File file = new File("c:"+ File.separator +"abc"+ File.separator +"a.txt"); //比较通用
File file = new File("c:\\abc","a.txt");
File f = new File("D:\\abc");
File file = new File(f,"a.txt");--------------这一构造的执行,并没有真正的创建了一个文件或文件夹。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
File file = new File("c:\\abc\\a.txt");
System.out.print(file.createNewFile());------------如果c:\\abc\\a.txt路径下的文件不存在,那么会返回true,如果已经存在或者创建失败,那么会返回false
boolean delete()
删除此抽象路径名表示的文件或目录
void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录-----在操作结束退出时删除
当我们创建一个文件,并且对这个文件进行操作,如果这一过程中出现异常,那么程序将终止,我们的delete()方法将不会被执行。
但是我们一定要删除这个文件,这时候就要使用deleteOnExit()方法,表示在程序对文件操作结束后,执行次命令,将文件删除。
File file = new File("c:\\abc\\a.txt");
file.deleteOnExit();
code(对文件内容进行操作);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
boolean
isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
boolean
isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件
File file = new File("c:\\abc\\a.txt");
System.out.print(file.isDirectory()); -------false
System.out.print(file.isFile()); -------false
分析:因为File file = new File("c:\\abc\\a.txt");这条语句是不创建文件或目录的,所以两种判断都为false,那么我们在执行这两种判断时,
有必要先进行判断对应的文件是否存在,如果不存在的话则没必要进行后续判断。
boolean exists()
测试此抽象路径名表示的文件或目录是否存在
boolean mkdir()
创建此抽象路径名指定的目录-----------------只能在现有目录的基础上创建一个级别的目录
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录------------可以创建多级目录
boolean
isAbsolute()
测试此抽象路径名是否为绝对路径名------无论文件是否存在,只要是绝对路径该方法就会返回true。否则返回false
……………………………………………………………………………………………………………………………………………………………
String
getPath()
将此抽象路径名转换为一个路径名字符串
String
getAbsolutePath()
返回此抽象路径名的绝对路径名字符串
File file = new File(当这里是一个绝对路径的时候,上述两方法返回值相同);
File
getAbsoluteFile()
返回此抽象路径名的绝对路径名形式。
String
getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null
File file = new File("D:\\IO\\abc.txt");
System.out.println("---:"+ file.getAbsoluteFile()); ---:D:\IO\abc.txt
System.out.println("---:"+file.getParent()); ---:D:\IO
File file2 = new File("ac.txt");
System.out.println("^^^:"+ file2.getAbsoluteFile()); ^^^:D:\IO\ac.txt
System.out.println("^^^:"+file2.getParent()); ^^^:null
System.out.println("---:"+file.getPath()); ---:D:\IO\abc.txt
System.out.println("---:"+file2.getPath()); ---:ac.txt
*************************************************************************************************************************