在Java的java.io
包中,File
类代表了文件和目录路径名的抽象表示。它提供了一些用于操作文件和目录的方法,如创建目录、创建文件、删除文件、判断文件是否存在、重命名等。
//创建方式一:public File(String pathname)
File file1 = new File("D:\\Review\\Emma.txt");
//创建方式二: public File(String parent,String child)
File file2 = new File("D:\\Review", "\\Emma.txt");
//创建方式三:public File(File parent,String child)
new File(new File("D:\\Review"),"\\Emma.txt");
System.out.println(file1);//D:\Review\Emma.txt
System.out.println(file2);//D:\Review\Emma.txt
小贴士:当使用 System.out.println
或其他输出方法打印一个 File
类的对象时,会自动调用其 toString
方法来获取可打印的字符串表示形式并输出到控制台。
在 Java 中,所有类都继承自 Object
类,而 Object
类中有一个 toString
方法,它返回表示对象的字符串表示形式。由于 File
类是 Object
类的子类,它继承了 toString
方法。然而,File
类重写了 toString
方法,以提供更有意义的字符串表示形式,以便于输出文件路径或其他相关信息。
因此,当你将 File
对象传递给输出方法时,会自动调用 File
类的 toString
方法,以获取文件路径的字符串表示形式,并将其输出到控制台。
下面是File类中提供的获取文件或目录属性信息的方法:
long length()
-- 返回当前File对象所表示文件的长度,单位是字节(如果File是目录,则返回0)
boolean exists()
-- 判断当前文件或目录是否存在,存在则返回true
boolean isFile()
-- 判断当前File对象表示的是否为文件,若是文件则返回true,否则返回false
boolean isDirectory()
-- 判断当前File对象表示的是否为目录,若是目录则返回true,否则返回false
String getName()
-- 返回当前File对象所表示文件或目录的名字
String getParent()
-- 返回当前File对象所表示文件或目录的父目录的路径
String getAbsolutePath()
-- 获取当前File对象所表示文件或目录的绝对路径
System.out.println(file1.length());//19
System.out.println(file1.exists());//true
System.out.println(file1.isFile());//true
System.out.println(file1.isDirectory());//false
System.out.println(file1.getName());//Emma.txt
System.out.println(file1.getParent());//D:\Review
System.out.println(file1.getAbsolutePath());//D:\Review\Emma.txt
下面是File类中提供的创建以及删除文件或目录的方法:
boolean createNewFile()
-- 若当前File对象表示的文件不存在,可以调用此方法创建一个空文件。
-- 若创建成功则返回true,否则就返回false。
boolean mkdir()
-- 若当前File对象表示的目录不存在,可以调用此方法创建一个空目录。
-- 若创建成功则返回true,否则就返回false
-- 该方法只能创建单层目录,如果当前目录的父目录也不存在,创建会失败
boolean mkdirs()
-- 若当前File对象表示的目录不存在,可以调用此方法创建一个空目录。
-- 若创建成功则返回true,否则就返回false
-- 该方法可以创建多层目录,如果当前目录的父目录也不存在,会连接父目录一起创建
boolean delete()
-- 删除当前File对象表示的文件或目录,如果表示的是目录,则该目录必须是空目录才能删除
-- 若删除成功则返回true,否则返回false
boolean renameTo( File newFile )
-- 将当前File对象表示的文件或目录的名字改为 newFile 中的名字
列表功能:
String[] list()
-- 若File对象表示的是一个目录,该方法可返回当前目录下所有的文件和目录的名称
-- 返回的名称都组织在一个字符串数组(String[])中)
File[] listFiles()
-- 若File对象表示的是一个目录,该方法可返回当前目录下所有的文件和目录对应的File对象
-- 返回的File对象都组织在一个File对象数组中。
f = new File("D:\\Teach");
String[]list = f.list();
System.out.println(Arrays.toString(list));//[1.txt.txt, 123.txt.txt, 2.txt.txt, m]
File[] ff = f.listFiles();
System.out.println(Arrays.toString(ff));//[D:\Teach\1.txt.txt, D:\Teach\123.txt.txt, D:\Teach\2.txt.txt, D:\Teach\m]