1. 程式人生 > >File 類

File 類

pub args gin mod tabs -h nor director 抽象

  • 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. }
如果想跳過像“x/y../z”直接解析為“x/z”,請使用 getCanonicalPath()

File 類