Java 文件

2018-02-07 20:09 更新

Java IO教程 - Java文件


File類的對象是文件或目錄的路徑名的抽象表示。

創(chuàng)建文件

我們可以從中創(chuàng)建一個 File 對象

  • 路徑名
  • 父路徑名和子路徑名
  • URI(統(tǒng)一資源標識符)

我們可以使用File類的以下構造函數(shù)之一創(chuàng)建一個文件:

File(String pathname)
File(File parent, String child)
File(String parent, String child)
File(URI uri)

如果我們有一個文件路徑名字符串test.txt,我們可以創(chuàng)建一個抽象路徑名作為下面的代碼。

File dummyFile = new File("test.txt");

名為test.txt的文件不必存在,以使用此語句創(chuàng)建File對象。

dummyFile對象表示抽象路徑名,它可能指向或可能不指向文件系統(tǒng)中的真實文件。

File類有幾個方法來處理文件和目錄。

使用File對象,我們可以創(chuàng)建新文件,刪除現(xiàn)有文件,重命名文件,更改文件的權限等。

File類中的isFile()和isDirectory()告訴File對象是否表示文件或目錄。


當前工作目錄

JVM的當前工作目錄是根據(jù)我們?nèi)绾芜\行java命令來設置的。

我們可以通過讀取user.dir系統(tǒng)屬性來獲取JVM的當前工作目錄,如下所示:

String  workingDir = System.getProperty("user.dir");

使用System.setProperty()方法更改當前工作目錄。

System.setProperty("user.dir", "C:\\myDir");

要在Windows上指定C:\\ test作為user.dir系統(tǒng)屬性值,我們運行如下所示的程序:

java -Duser.dir=C:\test your-java-class

文件的存在

我們可以使用File類的exists()方法檢查File對象的抽象路徑名是否存在。

boolean fileExists = dummyFile.exists();

完整源代碼

import java.io.File;

public class Main {
  public static void main(String[] argv) {
    // Create a File object
    File dummyFile = new File("dummy.txt");

    // Check for the file"s existence
    boolean fileExists = dummyFile.exists();
    if (fileExists) {
      System.out.println("The dummy.txt  file exists.");
    } else {

      System.out.println("The dummy.txt  file does  not  exist.");
    }

  }
}

上面的代碼生成以下結果。


路徑

絕對路徑在文件系統(tǒng)上唯一標識文件。規(guī)范路徑是唯一標識文件系統(tǒng)上文件的最簡單路徑。

我們可以使用getAbsolutePath()和getCanonicalPath()方法來分別獲得由File對象表示的絕對路徑和規(guī)范路徑。

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

public class Main {
  public static void main(String[] args) {
    printFilePath("dummy.txt");
    printFilePath(".." + File.separator + "notes.txt");
  }

  public static void printFilePath(String pathname) {
    File f = new File(pathname);
    System.out.println("File  Name: " + f.getName());
    System.out.println("File  exists: " + f.exists());
    System.out.println("Absolute Path: " + f.getAbsolutePath());

    try {
      System.out.println("Canonical Path: " + f.getCanonicalPath());
    }

    catch (IOException e) {
      e.printStackTrace();
    }
  }
}

上面的代碼生成以下結果。


文件分隔符

不同的操作系統(tǒng)使用不同的字符來分隔路徑名中的兩個部分。

例如,Windows在路徑名中使用反斜杠(\)作為名稱分隔符,而UNIX使用正斜杠(/)。

File類定義了一個名為分隔符Char的常量,它是系統(tǒng)相關的名稱分隔符。

我們可以使用File.separator Char常量來獲取名稱分隔符作為字符。

File.separator 常量將我們的名稱分隔符作為String。

在程序中使用名稱分隔符將使您的Java代碼在不同的平臺上工作。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號