IO流前奏 之文件

數據在電腦中是以文件的形式存在的,即文件是數據的載體

File

構造方法:

File(String pathname)

通過給定路徑名字符串轉化爲抽象路徑名來創建一個File實例
例:

File f=new File("D:\\abc")//封裝目錄
File f1=new File("D:\\abc.txt") //封裝文件

相對路徑與絕對路徑
相對路徑:不帶盤符號的路徑,使用IDEA時,若採用相對路徑生成的文件是存儲在當前Project的根目錄之下
絕對路徑:帶有盤符號的完整路徑

常用方法

1.創建文件,目錄

import java.io.File;
import java.io.IOException;

public class demo1 {
    public static void main(String[] args) throws IOException {
        File file=new File("D:\\1234.txt");
        boolean b = file.createNewFile();//判斷文件是否存在,若存不存在則創建並返回true,若存在則返回false
        System.out.println(b);
        File file1=new File("D:\\1234");
        boolean b1 = file1.mkdir();//創建單級目錄
        System.out.println(b1);
        File file2=new File("D:\\1234\\456");
        boolean b2=file2.mkdirs();//創建多級目錄,結果爲在D盤中創建123目錄在1234中創建456目錄,創建成功返回true
        System.out.println(b2);
    }
}
true
true
true

在這裏插入圖片描述
2.刪除

boolean b = file.delete();//返回值表示是否刪除成功

注意:delete只能刪除掉空的目錄,非空無法直接用delete刪除
遞歸刪除非空文件夾

import java.io.File;
public class demo{
    public static void main(String[] args)  {
        File file=new File("D:\\123");
        digui(file);
    }

    private static void digui(File file) {
        if (file.isFile()) {
            file.delete();
    }
        if (file.listFiles()!=null){
            File[] files = file.listFiles();
            for (File file1 : files) {
                digui(file1);
            }
        }
        file.delete();
    }
}

4.重命名文件

file.renameTo(new File())//重命名文件,如果使用相對路徑則會將原文件改名並剪切到IDEA當前project目錄下,使用絕對路徑則與原文件路徑一致

5.關於獲得的一些操作

import java.io.File;

public class demo1 {
    public static void main(String[] args) {
        File file=new File("D:\\1234.txt");
        String name = file.getName();//獲得文件名
        long length=file.length();//獲得文件的大小
        String s=file.getAbsolutePath();//獲得絕對路徑,返回字符串形式
        File s1=file.getAbsoluteFile();//獲取絕對路徑,返回file類型
        long l=file.lastModified();//獲取文件最後的修改時間
    }
}

6.判斷的一些操作

import java.io.File;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        boolean b=file.isDirectory();//判斷是否是目錄
        boolean b1=file.isFile();//判斷是否是文件
        boolean b2=file.canRead();//判斷是否可讀
        boolean b3=file.canWrite();//判斷是否可以寫
        boolean b4=file.canExecute();//判斷是否是可執行文件
        boolean b5=file.isHidden();//判斷文件是否是隱藏的
    
    }
}

注意:
win系統中所有文件類型都是可執行的,所以不論使用什麼類型的文件來測試canExecute()方法得到的返回值都是true

7.獲取目錄下所有的內容

import java.io.File;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        File[] files = file.listFiles();//將目錄下的所有內容以file形式存入數組中
        String[] list = file.list();//將目錄下所有的內容放以字符串形式入一個數組中

    }
}

該方法中可以傳入一個過濾器參數,來過濾出想要的文件類型

例:使用過濾器篩選出txt文件

import java.io.File;

import java.io.FilenameFilter;


public class demo1 {
    public static void main(String[] args)  {
        File file=new File("D:\\1234.txt");
        file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
               //dir  父目錄    name 文件名
                    File f=new File(dir,name);
                    if (f.isFile()&&f.getName().endsWith(".txt")){
                        return true;
                    }else {
                        return false;
                    }
            }
        });
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章