首页 > 代码库 > File类

File类

  • java.io.File类:文件和目录路径名的抽象表示形式(相当于抽象对应文件或文件夹),与平台无关
  • File:能新建、删除、重命名文件和目录,但 File 不能访问文件容本身。如果需要访问文件内容本身,则需要使用输入/输出流
  • File 可以作为参数传给流的构造函数

File 传入路径需要双斜杠:“\\” 或者 “/”
  1. public class Testfile {
  2. public static void main(String[] args) throws IOException {
  3. // 对应绝对路径下的文件
  4. File file1 = new File("C:/Users/59929/Desktop/test.txt");
  5. // 对应相对路径下的文件(对应当前工程下的目录user.dir)
  6. File file2 = new File("test.txt");
  7. // 对应路径
  8. File file3 = new File("C:/test");
  9. // 与“访问路径”相关的方法
  10. // 1.将此抽象路径名转换为一个路径名字符串:String getPath();
  11. System.out.println(file1.getPath());
  12. System.out.println(file2.getPath());
  13. System.out.println(file3.getPath());
  14. System.out.println();
  15. // 2.返回此抽象路径名的绝对路径名字符串:String getAbsolutePath();
  16. System.out.println(file1.getAbsolutePath());
  17. System.out.println(file2.getAbsolutePath());
  18. System.out.println(file3.getAbsolutePath());
  19. // 3.返回由此抽象路径名表示的文件或目录的名称,根目录返回空(注意不是 null):String getName();
  20. System.out.println(file1.getName());// test.txt
  21. System.out.println(file2.getName());// test.txt
  22. System.out.println(file3.getName());//
  23. System.out.println();
  24. // 4.返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null:String getParent();
  25. System.out.println(file1.getParent());// C:\Users\59929\Desktop
  26. System.out.println(file2.getParent());// null
  27. System.out.println(file3.getParent());// null
  28. System.out.println();
  29. // 5.返回此抽象路径名的绝对路径名形式:File getAbsoluteFile();
  30. System.out.println(file1.getAbsoluteFile());
  31. System.out.println(file2.getAbsoluteFile());
  32. System.out.println(file3.getAbsoluteFile());
  33. // 6.重新命名此抽象路径名表示的文件:boolean renameTo(File dest);
  34. // 注意:只能路径对应路径,文件对应文件,而且调用此方法的 File 对应的抽象路径必须存在,目标抽象路径 File dest
  35. // 必须不存在,且不能跨盘符
  36. // 如果是同目录下的文件(文件夹),会直接重命名,若目标文件(文件夹)不在当前目录,则会将当前文件(文件夹)重命名,再剪切到指定目录
  37. File file4 = new File("test1.txt");
  38. boolean b1 = file2.renameTo(file4);
  39. System.out.println(b1);
  40. File file5 = new File("C:/Users/59929/Desktop/test");
  41. File file6 = new File("C:/Users/59929/Documents/test1");
  42. boolean b2 = file5.renameTo(file6);
  43. System.out.println(b2);
  44. File file7 = new File("C:/Users/59929/Desktop/test.txt");
  45. File file8 = new File("C:/Users/59929/Documents/test1.txt");
  46. boolean b3 = file7.renameTo(file8);
  47. System.out.println(b3);
  48. // 与“文件检测”相关的方法
  49. // 1.测试此抽象路径名表示的文件或目录是否存在:boolean exists();
  50. System.out.println(file1.exists());
  51. // 2.测试应用程序是否可以读取此抽象路径名表示的文件:boolean canRead();
  52. System.out.println(file1.canRead());
  53. // 3.测试应用程序是否可以修改此抽象路径名表示的文件:boolean canWrite();
  54. System.out.println(file1.canWrite());
  55. // 4.测试此抽象路径名表示的文件是否是一个目录:boolean isDirectory();
  56. System.out.println(file1.isDirectory());
  57. // 5.测试此抽象路径名表示的文件是否是一个标准文件:boolean isFile();
  58. System.out.println(file1.isFile());
  59. // 与“获取文件信息”相关的方法
  60. // 1.返回此抽象路径名表示的文件最后一次被修改的时间:long lastModified();
  61. System.out.println(new Date(file1.lastModified()));
  62. // 2.返回由此抽象路径名表示的文件的长度(单位:字节)。如果此路径名表示一个目录,则返回值是不确定的:long length();
  63. System.out.println(file1.length());
  64. System.out.println(file3.length());
  65. // 与“文件/目录 操作相关”的方法
  66. // 1.当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件:boolean createNewFile()
  67. System.out.println(file1.createNewFile());
  68. // 2.删除此抽象路径名表示的文件或目录;boolean delete();
  69. System.out.println(file1.delete());
  70. // 3.创建此抽象路径名指定的目录:boolean mkdir();
  71. // 创建此抽象路径名指定的目录并包括所有必需但不存在的父目录:boolean mkdirs();
  72. System.out.println(file3.mkdir());
  73. File file9 = new File("C:/test1/t");
  74. System.out.println(file9.mkdirs());
  75. // 4.返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录:
  76. // String[] list(FilenameFilter filter);
  77. File file10 = new File("C:/");
  78. String str[] = file10.list();
  79. for (String s : str) {
  80. System.out.println(s);
  81. }
  82. // 5.返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件:File[] listFiles();
  83. File files[] = file10.listFiles();
  84. for (File f : files) {
  85. System.out.println(f.getName());
  86. }
  87. }
  88. }

File类