JAVA_基礎IO流(一)

IO流

File類的使用

  • java.io.File類:文件和文件目錄路徑的抽象表示形式,與平臺無關。
  • File 能新建、刪除、重命名文件和目錄,但 File 不能訪問文件內容自己。 若是須要訪問文件內容自己,則須要使用輸入/輸出流。
  • 想要在Java程序中表示一個真實存在的文件或目錄,那麼必須有一個File對 象,可是Java程序中的一個File對象,可能沒有一個真實存在的文件或目錄。
  • File對象能夠做爲參數傳遞給流的構造器。
  1. 如何建立File類的實例
    public File(String pathname):以pathname爲路徑建立File對象,能夠是絕對路徑或者相對路徑,若是 pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中存儲。java

    File file1 = new File("hello.txt");// 相對於當前module
    File file2 = new File("F:\\Java\\JavaSenior\\month12-day07\\he.txt");// 絕對路徑
    System.out.println(file1);// hello.txt
    System.out.println(file2);// F:\Java\JavaSenior\month12-day07\he.txt

    public File(String parent,String child):以parent爲父路徑,child爲子路徑建立File對象。windows

    File file3 = new File("F:\\Java\\JavaSenior","month12-day07");
    System.out.println(file3);// F:\Java\JavaSenior\month12-day07

    public File(File parent,String child):根據一個父File對象和子文件路徑建立File對象。數組

    File file4 = new File(file3, "hi.txt");
    System.out.println(file4); // F:\Java\JavaSenior\month12-day07\hi.txt
  2. 相對路徑:相較於某個路徑下,指明的路徑
    絕對路徑:包含盤符在內的文件或文件路徑ui

  3. 路徑分隔符
    windows和DOS系統:\\
    unix和URL:/
    Java程序支持跨平臺運行,所以路徑分隔符要慎用。
    爲了解決這個隱患,File類提供了一個常量: public static final String separator。根據操做系統,動態的提供分隔符。操作系統

    File file1 = new File("d:\\atguigu\\info.txt");
    File file2 = new File("d:" + File.separator + "atguigu" + File.separator + "info.txt");
    File file3 = new File("d:/atguigu");

File類的獲取功能

public String getAbsolutePath():獲取絕對路徑 。
public String getPath() :獲取路徑 。
public String getName() :獲取名稱 。
public String getParent():獲取上層文件目錄路徑。若無,返回null
public long length() :獲取文件長度(即:字節數)。不能獲取目錄的長度。
public long lastModified() :獲取最後一次的修改時間,毫秒值 。unix

以下方法適用於文件目錄
public String[] list() :獲取指定目錄下的全部文件或者文件目錄的名稱數組 。
public File[] listFiles() :獲取指定目錄下的全部文件或者文件目錄的File數組。code

public void Test2() {
    File file1 = new File("hello.txt");
    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt");
    System.out.println(file1.getAbsolutePath());
    System.out.println(file1.getName());
    System.out.println(file1.getParent());
    System.out.println(file1.length());
    System.out.println(new Date(file1.lastModified()));
    System.out.println();
    System.out.println(file2.getAbsolutePath());
    System.out.println(file2.getName());
    System.out.println(file2.getParent());
    System.out.println(file2.length());
    System.out.println(file2.lastModified());
}
public void test3() {
    File file = new File("F:\\Java\\JavaSenior\\month12-day07");
    String[] list = file.list();
    for (String s : list) {
        System.out.println(s);
    }
    File[] files = file.listFiles();
    for (File s : files) {
        System.out.println(s);
    }
}

public boolean renameTo(File dest):把文件重命名爲指定的文件路徑。
file1.renameTo(file2) 爲例:
要像保證返回true,須要file1在硬盤中是存在的,且file2不能在硬盤中存在。對象

public void test4() {
    File file1 = new File("hello.txt");
    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt");
    boolean renameTo = file1.renameTo(file2);
    System.out.println(renameTo);
}

File類經常使用方法

File類的判斷功能

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

public void test5() {
    File file1 = new File("hello.txt");

    System.out.println(file1.isDirectory());
    System.out.println(file1.isFile());
    System.out.println(file1.exists());
    System.out.println(file1.canRead());
    System.out.println(file1.canWrite());
    System.out.println(file1.isHidden());

    System.out.println();

    File file2 = new File("F:\\OfficeFile\\JAVA_IO");
    System.out.println(file1.isDirectory());
    System.out.println(file1.isFile());
    System.out.println(file1.exists());
    System.out.println(file1.canRead());
    System.out.println(file1.canWrite());
    System.out.println(file1.isHidden());
}

File類的建立硬盤中對應文件或目錄

public boolean createNewFile() :建立文件。若文件存在,則不建立,返回false
public boolean mkdir() :建立文件目錄。若是此文件目錄存在,就不建立了。 若是此文件目錄的上層目錄不存在,也不建立。
public boolean mkdirs() :建立文件目錄。若是上層文件目錄不存在,一併建立。
public boolean delete():刪除磁盤中的文件或者文件夾 刪除注意事項: Java中的刪除不走回收站。 要刪除一個文件目錄,請注意該文件目錄內不能包含文件或者文件目錄。it

文件的建立:

public void test6() {
    File file1 = new File("Hi.txt");
    if (!file1.exists()) {
        try {
            boolean newFile = file1.createNewFile();
            if (newFile) System.out.println("建立成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }else {
        boolean delete = file1.delete();
        if (delete) System.out.println("刪除成功");
    }
}

文件目錄的建立:

public void test7() {
    File file1 = new File("F:\\OfficeFile\\JAVA_IO\\IO01\\io03");
    boolean mkdir = file1.mkdir();
    if (mkdir) System.out.println("建立成功1");

    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\IO02\\io04");
    boolean mkdirs = file2.mkdirs();
    if (mkdirs) System.out.println("建立成功2");
}

FIle類中涉及到關於文件或文件目錄的建立、刪除、重命名、修改時間、文件大小等方法,並未涉及到寫入或讀取文件內容的操做。若是須要讀取或寫入文件內容,必須使用IO流來完成。

相關文章
相關標籤/搜索