1. 程式人生 > 其它 >Java-33 File類

Java-33 File類

  • File類概述:
    • 檔案和目錄(資料夾)路徑名的抽象表示形式
    • java把電腦中的檔案和資料夾封裝成一個File類,我們可以對檔案和資料夾進行操作
    • File是一個與系統無關的類,任何作業系統都可以使用這個方法
    • file:檔案 directory:資料夾/目錄 path:路徑
  • File的靜態方法
/*
file類的靜態方法
 */
public class FileDemo1 {
    public static void main(String[] args) {
        //static String pathSeparator
        //與系統相關的路徑分隔符字元,為方便起見,表示為字串。
        
//static char pathSeparatorChar //與系統相關的路徑分隔符。 String pathSeparator = File.pathSeparator; System.out.println(pathSeparator);//: 注:路徑分隔符 windows:分號 Linux:冒號 //static String separator //與系統相關的預設名稱 - 分隔符字元,以方便的方式表示為字串。 //static char separatorChar //與系統相關的預設名稱分隔符。
System.out.println(File.separator);// \ 注:檔名分割符 windows:\ linux:/ } }
  • File的構造方法
    • public File(String pathname)
    • public File(String parent,String child)
    • public File(File parent,String child)
import java.io.File;

/*
  File類的構造方法:
            public File(String pathname)
            public File(String parent,String child)
            public File(File parent,String child)
 
*/ public class FileDemo2 { public static void main(String[] args) { // public File(String pathname) //相對路徑,絕對路徑,資料夾和檔案都可以,不考慮路徑真假情況 File file1 = new File("D:\\soft\\ideaProject\\src\\com\\shujia\\day1\\day22");//絕對路徑 File file = new File("a.txt");//相對路徑 System.out.println(file1);//D:\soft\ideaProject\src\com\shujia\day1\day22 System.out.println(file);//a.txt // public File(String parent,String child) //根據一個目錄和一個子檔案(目錄)得到一個File物件 //父路徑和子路徑,可以單獨書寫,使用靈活,都可以變化 System.out.println(new File("D:\\soft", "a.txt")); //D:\soft\a.txt System.out.println(new File("D:\\soft", "ideaProject")); //D:\soft\ideaProject //public File(File parent,String child) //根據一個父的File物件和一個子檔案(目錄)得到一個File物件 //父路徑時file型別,可以對父路徑進行一些操作,再使用路徑建立物件 File file2 = new File(file1, "a.txt"); System.out.println(file2); //D:\soft\ideaProject\src\com\shujia\day1\day22\a.txt } }
  • File類的成員方法:
    • 建立功能
      • public boolean createNewFile()
      • public boolean mkdir()
      • public boolean mkdirs()
    • 刪除功能
      • public boolean delete()
    • 重新命名功能
      • public boolean renameTo(File dest)
import java.io.File;
import java.io.IOException;

/*
建立功能
            public boolean createNewFile()  建立檔案
            public boolean mkdir()  建立資料夾
            public boolean mkdirs() 建立多級資料夾
 */
public class FileDemo3 {
    public static void main(String[] args) throws IOException {
        //public boolean createNewFile()
        //建立一個新的檔案
        //如果該檔案已經存在,就不會建立,不會報錯
        //想要在指定目錄下建立檔案,前提是該目錄必須存在,否在報錯
        File file = new File("D:\\soft\\aa.txt");
        System.out.println(file.createNewFile());//true

        //public boolean mkdir()
        //在指定目錄下建立資料夾
        //如果已經存在了這樣的資料夾,就不會建立了,返回false
        File file1 = new File("D:\\soft\\aa");
        System.out.println(file1.mkdir());//true

        //public boolean mkdirs()
        //建立多級資料夾
        File file2 = new File("D:\\soft\\aa\\a\\aaaa");
        System.out.println(file2.mkdirs());//true
        System.out.println(file.mkdir());//true
        //win11中檔案和資料夾的名字不能重複
    }
}
import java.io.File;
import java.io.IOException;

/*
 刪除功能
            public boolean delete()
 */
public class FileDemo4 {
    public static void main(String[] args) throws IOException {
        //在當前專案的根目錄資料夾下建立一個檔案
        //相對路徑
        File file = new File("D:\\soft\\ideaProject\\src\\com\\shujia\\day1\\day22\\a.txt");
        File file1 = new File("shujia\\day1\\day22\\b.txt");
        file.createNewFile();
        file.delete();
        file1.createNewFile();
        file1.delete();

        //在當前專案的根目錄資料夾下建立多級目錄
        File file2 = new File("demo1\\demo2\\demo3");
        file2.mkdirs();
        file2.delete();
        //想要刪除一個資料夾,該資料夾裡面的內容必須是空的
        //刪除demo1這個資料夾
        File demo1 = new File("demo1");
        demo1.delete();

        //刪除demo2資料夾
        File file3 = new File("demo1\\demo2");
        file3.delete();
        //再刪除demo1資料夾
        demo1.delete();
    }
}