如何在Java中檢查檔案是否可讀、可寫或可執行?


一般來說,建立檔案時,您可以限制/允許某些使用者讀取/寫入/執行檔案。

在Java中,檔案(其抽象路徑)由java.io包的File類表示。此類提供各種方法來執行檔案的各種操作,例如讀取、寫入、刪除、重新命名等。

此外,此類還提供以下方法:

  • setExecutable() − 此方法用於設定當前(File)物件所代表檔案的執行許可權。

  • setWritable() − 此方法用於設定當前(File)物件所代表檔案的寫入許可權。

  • setReadable() − 此方法用於設定當前(File)物件所代表檔案的讀取許可權。

示例

下面的Java程式建立一個檔案,向其中寫入一些資料,並設定其讀取、寫入和執行許可權。

 線上演示

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FilePermissions {
   public static void main(String args[]) throws IOException {
      String filePath = "D:\sample.txt";
      //Creating a file
      File file = new File(filePath);
      System.out.println("File created.........");
      //Writing data into the file
      FileWriter writer = new FileWriter(file);
      String data = "Hello welcome to Tutorialspoint";
      writer.write(data);
      System.out.println("Data entered.........");
      //Setting permissions to the file
      file.setReadable(true); //read
      file.setWritable(true); //write
      file.setExecutable(true); //execute
      System.out.println("Permissions granted.........");
   }
}

輸出

Directory created.........
File created.........
Data entered.........
Permissions granted.........

可讀、可寫、可執行

除了java.io包的File類之外,從Java 7開始引入了Files類,其中包含操作檔案、目錄或其他型別的檔案(靜態)方法。

您可以使用此類的isReadable()、isWritable()和isExecutable()方法來驗證特定檔案是否具有讀取、寫入和執行許可權。

isReadable()方法 − 此方法接受Path類的物件,並驗證給定路徑所代表的檔案是否存在於系統中,以及JVM是否具有讀取它的許可權。如果存在,則返回true,否則返回false。

isWritable()方法 − 此方法接受Path類的物件,並驗證給定路徑所代表的檔案是否存在於系統中,以及JVM是否具有寫入它的許可權。如果存在,則返回true,否則返回false。

isExecutable()方法 − 此方法接受Path類的物件,並驗證給定路徑所代表的檔案是否存在於系統中,以及JVM是否具有執行它的許可權。如果存在,則返回true,否則返回false。

Files類

此類提供了一個名為exists()的方法,如果當前物件(s)所代表的檔案存在於系統中,則返回true,否則返回false。

示例

下面的Java程式驗證指定的檔案是否存在於系統中。它使用了Files類的方法。

 線上演示

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FilesExample {
   public static void main(String args[]) {
      //Creating a Path object
      Path path = Paths.get("D:\sample.txt");
      //Verifying if the file is readable
      boolean bool = Files.isReadable(path);
      if(bool) {
         System.out.println("readable");
      } else {
         System.out.println("not readable");
      }
      bool = Files.isWritable(path);
      if(bool) {
         System.out.println("writable");
      } else {
         System.out.println("not writable");
      }
      bool = Files.isExecutable(path);
      if(bool) {
         System.out.println("executable");
      } else {
         System.out.println("not executable");
      }
   }
}

輸出

readable
writable
executable

更新於:2019年9月6日

3K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告