Java中File類的常用API


Java.io包下的File類實現了Serializable和Comparable兩個接口

1.創建文件

注意:

1).如果D盤下file文件夾不存在,則拋出異常;如果D盤下file文件夾存在,則創建成功,返回true

2).如果D盤下file文件夾下已存在file.txt文件,則返回false

public static void main(String[] args) throws IOException {
        File file = new File("D:\\file\\file.txt");
        System.out.println("文件是否創建成功:"+file.createNewFile());
    }
}

2.判斷文件是否存在

存在返回true;不存在返回false

 System.out.println("文件是否存在:"+file.exists());

3.判斷是否是文件

是返回true;不是返回false

System.out.println("是否是文件:"+file.isFile());

4.文件重命名

成功返回true;不成功返回false;

注意:如果修改后的路徑和修改前的路徑不一致,會把修改前的文件剪切掉,然后再新路徑下創建新的文件

File file2 = new File("D:\\file\\file2.txt");
System.out.println("文件重命名是否成功:"+file.renameTo(file2));

5.創建單級目錄

創建成功返回true;創建失敗返回false

注意:

1)如果目錄已存在,返回false

2)mkdir()無法創建多級目錄

File f = new File("D:\\dir");
System.out.println("創建單級目錄是否成功:"+f.mkdir());

6.創建多級目錄

創建成功返回true;創建失敗返回false

注意:如果目錄已存在,返回false

File f = new File("D:\\dir\\dir1\\dir2");
System.out.println("創建多級目錄是否成功:"+f.mkdirs());

7.判斷是否是文件夾

是返回true;不是返回false

System.out.println("是否是文件夾:"+f.isDirectory());

8.獲取文件/文件夾的名稱

注意:如果是獲取文件夾,那么獲取到的是最后一級的目錄名

System.out.println("文件的名稱:"+file.getName());
System.out.println("文件夾的名稱:"+f.getName());

9.獲取文件/文件夾的路徑

9.1getPath()

注意:

1)返回的是定義時的路徑,這個路徑可能是相對路徑,也可能是絕對路徑,這個取決於你定義路徑時的設置

2)返回值類型是String

System.out.println("文件路徑字符串:"+file.getPath());
System.out.println("目錄路徑字符串"+f.getPath());

9.2getAbsolutePath()

注意:

1)返回的是絕對路徑,即從根路徑開始

2)返回值類型是String

System.out.println("文件路徑字符串:"+file.getAbsolutePath());
System.out.println("目錄路徑字符串"+f.getAbsolutePath());

9.3getAbsoluteFile()

注意:

1)返回的是絕對路徑,即從根路徑開始

2)返回值類型是File

System.out.println("文件絕對路徑:"+file.getAbsoluteFile());
System.out.println("目錄絕對路徑"+f.getAbsoluteFile());

10.刪除文件/文件夾

刪除成功返回true,刪除失敗返回false

注意:當刪除文件夾時,delete()方法刪除的是最后一級目錄

System.out.println("文件是否刪除成功:"+file.delete());
System.out.println("文件夾是否刪除成功:"+f.delete());

11.獲取文件/文件夾所在的目錄名稱

返回值類型為String

注意:返回的路徑與定義File類時的路徑一致

System.out.println("文件所在文件夾名稱:"+file.getParent());//文件所在文件夾名稱:D:\file
System.out.println("上級目錄名稱:"+f.getParent());//上級目錄名稱:D:\dir\dir1

12.獲取文件大小

返回值類型是long

注意:返回的文件大小表示字節(一個英文占1字節,一個漢字占3字節)

System.out.println("文件大小:"+file.length());//文件大小:7

13.獲取最后修改時間

返回值類型是long

long date = file.lastModified();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simpleDateFormat.format(new Date(date)));//2020-05-13 13:35:45

14.獲取目錄下文件/文件夾

14.1 list()方法

返回值類型是字符串集合

注意:返回的是目錄下的文件或文件夾,如果文件夾下還有文件,不會返回

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

14.2 listFiles()方法

返回值類型是File類型集合

注意:返回的是目錄下的文件或文件夾,如果文件夾下還有文件,不會返回

 File[] files = f.listFiles();
        for (File fl : files) {
            System.out.println("目錄下文件/文件夾名稱:"+fl.getName());
        }

綜合示例(遞歸,查看目錄下所有的文件夾和文件)

 public static void main(String[] args) throws IOException {
        String rootPath = "D:\\dir";
        recursion(rootPath);

    }
   public static void recursion(String rootPath ) {
        File f1 = new File(rootPath);
        if (f1 != null) {
            if (f1.isDirectory()) {
                File[] files = f1.listFiles();
                if (files.length > 0) {
                    for (File file : files) {
                        if (file.isDirectory()) {
                            System.out.println(rootPath+"下"+"文件夾名稱:" + file.getName());
                            recursion(file.getAbsolutePath());
                        } else {
                            System.out.println(rootPath+"下"+"文件名稱:"+file.getName());
                        }
                    }
                } else {
                    System.out.println(rootPath+"目錄下沒有內容");
                }
            } else {
                System.out.println(rootPath + "不是目錄");
            }
        } else {
            System.out.println("系統沒有找到路徑");
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM