java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
File类有三种构造方法:
File(String path):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例;
File(String path, String name):从父路径名字符串和子路径名字符串创建新的File实例;
File(File dir, String name):从父抽象路径名和子路径名字符串创建新的File实例。
一个小案例(在D盘中创建多级文件夹,并创建.txt文件):
public class Test4 { public static void main(String[] args) throws IOException { File f1 = new File("d:/aa/bb/cc"); f1.mkdirs(); File f2 = new File(f1,"c.txt"); f2.createNewFile(); } }
File类的方法:
boolean | canExecute() 测试应用程序是否可以执行此抽象路径名表示的文件。 |
boolean | canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。 |
boolean | canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。 |
int | compareTo(File pathname) 按字母顺序比较两个抽象路径名。 |
boolean | createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 |
static File | createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
static File | createTempFile(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
boolean | delete() 删除此抽象路径名表示的文件或目录。 |
void | deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
boolean | equals(Object obj) 测试此抽象路径名与给定对象是否相等。 |
boolean | exists() 测试此抽象路径名表示的文件或目录是否存在。 |
File | getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。 |
String | getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 |
File | getCanonicalFile() 返回此抽象路径名的规范形式。 |
String | getCanonicalPath() 返回此抽象路径名的规范路径名字符串。 |
long | getFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数。 |
String | getName() 返回由此抽象路径名表示的文件或目录的名称。 |
String | getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null 。 |
File | getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null 。 |
String | getPath() 将此抽象路径名转换为一个路径名字符串。 |
long | getTotalSpace() 返回此抽象路径名指定的分区大小。 |
long | getUsableSpace() 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。 |
int | hashCode() 计算此抽象路径名的哈希码。 |
boolean | isAbsolute() 测试此抽象路径名是否为绝对路径名。 |
boolean | isDirectory() 测试此抽象路径名表示的文件是否是一个目录。 |
boolean | isFile() 测试此抽象路径名表示的文件是否是一个标准文件。 |
boolean | isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件。 |
long | lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。 |
long | length() 返回由此抽象路径名表示的文件的长度。 |
String[] | list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 |
String[] | list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] | listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 |
File[] | listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] | listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
static File[] | listRoots() 列出可用的文件系统根。 |
boolean | mkdir() 创建此抽象路径名指定的目录。 |
boolean | mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 |
boolean | renameTo(File dest) 重新命名此抽象路径名表示的文件。 |
boolean | setExecutable(boolean executable) 设置此抽象路径名所有者执行权限的一个便捷方法。 |
boolean | setExecutable(boolean executable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的执行权限。 |
boolean | setLastModified(long time) 设置此抽象路径名指定的文件或目录的最后一次修改时间。 |
boolean | setReadable(boolean readable) 设置此抽象路径名所有者读权限的一个便捷方法。 |
boolean | setReadable(boolean readable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的读权限。 |
boolean | setReadOnly() 标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 |
boolean | setWritable(boolean writable) 设置此抽象路径名所有者写权限的一个便捷方法。 |
boolean | setWritable(boolean writable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的写权限。 |
String | toString() 返回此抽象路径名的路径名字符串。 |
URI | toURI() 构造一个表示此抽象路径名的 file: URI。 |
URL | toURL() 已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 装换为 URL。 |
小部分方法示例:
public static void main(String[] args) { File f1= new File("d:/aa/bb/bb.txt"); File f2= new File("bb.txt"); File f3= new File("d:/aa/bb"); String absolutePath1 = f1.getAbsolutePath();//获取绝对磁盘路径 常用 String absolutePath2 = f2.getAbsolutePath(); System.out.println(absolutePath1); System.out.println(absolutePath2); String path1 = f1.getPath();//定义的时候的文件路径名 String path2 = f2.getPath(); System.out.println(path1); System.out.println(path2); String parent1 = f1.getParent();//获取父路径 String parent2 = f2.getParent(); String parent3 = f2.getParent(); System.out.println(parent1); System.out.println(parent2); System.out.println(parent3); String name1 = f1.getName();//获取文件名 String name2 = f2.getName(); String name3 = f3.getName(); System.out.println(name1); System.out.println(name2); System.out.println(name3); long length = f1.length();//获取文件大小 System.out.println(length); System.out.println(f1.exists());//判断该文件、文件夹是否存在 System.out.println(f2.exists()); System.out.println(f3.exists()); //判断是否为文件夹 System.out.println(f1.isDirectory()); //判断是否为文件 System.out.println(f1.isFile()); }