Java | File類

File類

Java文件類以抽象的方式表明文件名和目錄路徑名。該類主要用於文件和目錄的建立、文件的查找和文件的刪除等。
File對象表明磁盤中實際存在的文件和目錄。能夠經過如下構造方法建立一個File對象:數組

  • public File(String pathName):以pathname爲路徑建立File對象,能夠是 絕對路徑或者相對路徑,若是pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中存儲。
  • public File(String parent,String child):以parent爲父路徑,child爲子路徑建立File對象。
  • public FIle(File parent,String child):根據一個父File對象和子文件路徑建立File對象
  • public File(URI uri):經過將給定的 file: URI 轉換成一個抽象路徑名來建立一個新的 File 實例。
@Test
    public void test1(){
        // 構造器1:
        File f1 = new File("Hello.txt");// 相對於當前Module的路徑
        File f2 = new File("D:\\code\\Java\\JavaSenior\\Day07\\Hello.txt");// 使用絕對路徑

        // 構造器2:
        File f3 = new File("D:\\code\\Java\\JavaSenior","Day07");
        File f4 = new File("D:\\code\\Java\\JavaSenior\\Day07","hello.txt");

        // 構造器3:
        File f5 = new File(f3,"hello.txt");

        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f3);
        System.out.println(f4);
        System.out.println(f5);
    }

File類的經常使用方法

獲取功能方法ide

  • public String getAbsolutePath():獲取絕對路徑
  • public String getPath() :獲取路徑
  • public String getName() :獲取名稱
  • public String getParent():獲取上層文件目錄路徑。若無,返回null
  • public long length() :獲取文件長度(即:字節數)。不能獲取目錄的長度。
  • public long lastModified() :獲取最後一次的修改時間,毫秒值
  • public String[] list() :獲取指定目錄下的全部文件或者文件目錄的名稱數組
  • public File[] listFiles() :獲取指定目錄下的全部文件或者文件目錄的File數組
@Test
    public void test2(){
        File f1 = new File("Hello.txt");
        File f2 = new File("D:\\code\\Java\\IOTest");// 使用絕對路徑

        System.out.println(f1.getAbsoluteFile());
        System.out.println(f1.getPath());
        System.out.println(f1.getName());
        System.out.println(f1.getParent());
        System.out.println(f1.length());
        System.out.println(f1.lastModified());
        System.out.println("-----------------------");
        System.out.println(f2.getAbsoluteFile());
        System.out.println(f2.getPath());
        System.out.println(f2.getName());
        System.out.println(f2.getParent());
        System.out.println(f2.length());
        System.out.println(f2.lastModified());
    }

輸出結果:測試

D:\code\Java\JavaSenior\Day07\Hello.txt
Hello.txt
Hello.txt
null
48
1573625332155
-----------------------
D:\code\Java\IOTest
D:\code\Java\IOTest
IOTest
D:\code\Java
0
1573626319416

list()方法和listFiles()方法的測試:idea

@Test
    public void test3(){
        File f = new File("D:\\code\\Java\\JavaSenior");

        String[] list = f.list();
        for(String s : list){
            System.out.println(s);
        }

        System.out.println();
        File[] files = f.listFiles();
        for (File file : files){
            System.out.println(file);
        }
    }

運行結果:code

.idea
Day01
Day02
Day03
Day04
Day05
Day06
Day07
JavaSenior.iml
out
src

D:\code\Java\JavaSenior\.idea
D:\code\Java\JavaSenior\Day01
D:\code\Java\JavaSenior\Day02
D:\code\Java\JavaSenior\Day03
D:\code\Java\JavaSenior\Day04
D:\code\Java\JavaSenior\Day05
D:\code\Java\JavaSenior\Day06
D:\code\Java\JavaSenior\Day07
D:\code\Java\JavaSenior\JavaSenior.iml
D:\code\Java\JavaSenior\out
D:\code\Java\JavaSenior\src

判斷功能方法對象

  • public boolean isDirectory():判斷是不是文件目錄
  • public boolean isFile() :判斷是不是文件
  • public boolean exists() :判斷是否存在
  • public boolean canRead() :判斷是否可讀
  • public boolean canWrite() :判斷是否可寫
  • public boolean isHidden() :判斷是否隱藏

測試代碼:get

@Test
    public void test5(){
        File f1 = new File("Hello.txt"); // 文件
        System.out.println(f1.isDirectory());
        System.out.println(f1.isFile());
        System.out.println(f1.exists());
        System.out.println(f1.canRead());
        System.out.println(f1.canWrite());
        System.out.println(f1.isHidden());
    }

運行結果:it

false
true
true
true
true
false

文件重命名io

  • public boolean renameTo(File dest):把文件重命名爲指定的文件路徑

說明:要想renameTo返回True,那麼重命名的源文件呢在硬盤中必須存在,重名後的文件在硬盤中不能存在。ast

@Test
    public void test4(){
        //要想renameTo方法返回true,那麼須要f1在硬盤是存在的,且f2是不能存在硬盤的
        File f1 = new File("Hello.txt");
        File f2 = new File("D:\\code\\Java\\IOTest\\hi.txt");
        boolean isRename = f1.renameTo(f2);
        System.out.println(isRename);
    }

實現文件或者目錄在硬盤的建立和刪除

  • public boolean createNewFile() :建立文件。若文件存在,則不建立,返回false
  • public boolean mkdir() :建立文件目錄。若是此文件目錄存在,就不建立了。若是此文件目錄的上層目錄不存在,也不建立。
  • public boolean mkdirs() :建立文件目錄。若是上層文件目錄不存在,一併建立

注意:若是你建立文件或者文件目錄沒有寫盤符路徑 ,那麼 ,默認在項目路徑下 。

@Test
    public void test6() throws IOException {
        // 文件的建立和刪除
        File f1 = new File("zabbix.txt");
        if (!f1.exists()){
            f1.createNewFile();
            System.out.println("建立成功");
        }else {
            f1.delete();
            System.out.println("刪除成功");
        }
相關文章
相關標籤/搜索