| File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例 |
| File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例 |
| File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例 |
| File(URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例 |
| 返回类型 | 方法描述 |
|---|---|
| 创建 | |
| boolean | createNewFile()
创建文件,同时不存在返回true 存在返回false |
| static File | createTempFile(String suffix)
在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。 |
| static File | createTempFile(File directory)
在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
| boolean | mkdir()
创建目录,如果上一级目录不存在,则会创建失败 |
| boolean | mkdirs()
创建多级目录,如果上一级目录不存在也会自动创建 |
| 检查 | |
| boolean | exists()
测试文件或目录是否存在,存在true |
| boolean | canExecute()
测试是否可执行文件。 |
| boolean | canRead()
测试是否可以读取文件。 |
| boolean | canWrite()
测试是否可以修改文件。 |
| boolean | equals(Object obj)
测试此抽象路径名与给定对象的相等性。 |
| boolean | isAbsolute()
测试是否是绝对路径(文件不存在也能判断) |
| boolean | isDirectory()
测试文件是否为目录。 |
| boolean | isFile()
测试文件是否为普通文件。 |
| boolean | isHidden()
测试文件是否为隐藏文件。 |
| 比较 | |
| int | compareTo(File pathname)
比较两个抽象的路径名字典。 |
| 删除 | |
| boolean | delete()
删除文件或目录,如果表示目录,则目录下必须为空才能删除 |
| void | deleteOnExit()
文件使用完成后删除 |
| 转换 | |
| String | getPath()
将此抽象路径名转换为路径名字符串。 |
| 设置 | |
| 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)
设置此抽象路径名的所有者或每个人的写入权限。 |
| 返回 | |
| File | getAbsoluteFile()
返回此抽象路径名的绝对形式。 |
| String | getAbsolutePath()
返回绝对路径名字符串。 |
| File | getCanonicalFile()
返回此抽象路径名的规范形式。 |
| String | getCanonicalPath()
返回此抽象路径名的规范路径名字符串。 |
| long | getFreeSpace()
返回分区未分配的字节数 named此抽象路径名。 |
| String | getName()
返回文件或目录的名称。 |
| String | getParent()
返回上一级目录的名称 |
| File | getParentFile()
返回上一级目录的File对象 |
| long | getTotalSpace()
通过此抽象路径名返回分区 named的大小。 |
| long | getUsableSpace()
返回上的分区提供给该虚拟机的字节数 named此抽象路径名。 |
| int | hashCode()
计算此抽象路径名的哈希码。 |
| long | lastModified()
返回文件上次修改的时间(单位毫秒) |
| long | length()
返回文件的长度(字单位节) |
| String[] | list()
返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 |
| String[] | list(FilenameFilter filter)
返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
| File[] | listFiles()
返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。 |
| File[] | listFiles(FileFilter filter)
返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 |
| File[] | listFiles(FilenameFilter filter)
返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 |
| static File[] | listRoots()
列出可用的文件系统根。 |
| Path | toPath()
返回从此抽象路径构造的java.nio.file.Path对象。 |
| String | toString()
返回此抽象路径名的路径名字符串。 |
| 其它 | |
| URI | toURI()
构造一个表示此抽象路径名的 file: URI。 |
构造方法1:File(String pathname) File f1 = new File("D:\\IO\\a.txt"); //注意:不使用 Java 提供的分隔符字段,只能在 Windows 平台有效 File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt"); //使用 Java 提供的分隔符 System.out.println(f1); //输出 D:\IO\a.txt System.out.println(f2); //输出 D:\IO\a.txt 构造方法2:File(File parent, String child) File f1 = new File("D:"); File f2 = new File(f1,"IO"); System.out.println(f2); //D:\IO 构造方法3:File(String parent, String child) File f6 = new File("D:","IO\\a.txt"); System.out.println(f6); //D:\IO\a.txt 综合用法: File dir = new File("D:"+File.separator+"IO"); File file = new File(dir,"a.txt"); //判断dir 是否存在且表示一个目录 if(!(dir.exists()||dir.isDirectory())){ dir.mkdirs();//如果 dir 不存在,则创建这个目录 file.createNewFile(); //根据目录和文件名,创建 a.txt文件 } //返回文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。 System.out.println(file.getName()); //a.txt //返回父目录的路径名字符串,如果没有父目录返回null System.out.println(file.getParent()); //D:\IO //将路径转换为字符串 System.out.println(file.getPath()); //D:\IO\a.txt 递归遍历: public static void foreachFile(File f){ if(f != null){ File[] files = f.listFiles(); //获取指定文件夹下所有文件夹名和文件名,返回File数组 if(files != null){ for(File file : files){ if(file.isFile()){ //如果是文件 //file.getAbsolutePath(); 获取文件绝对路径 //file.getName(); 获取文件名 //file.length(); 获取文件大小 }else{ //是文件夹,继续递归 if(file != null) foreachFile(file); } } } } }