如何检查文件在Java中是否可读,可写或可执行?

通常,无论何时创建文件,都可以限制/允许某些用户读取/写入/执行文件。

在Java文件中(它们的抽象路径)由java.io包的File类表示。此类提供了各种方法来对文件执行各种操作,例如读取,写入,删除,重命名等。

此外,此类还提供以下方法-

  • setExecutble() -此方法用于设置对当前(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";
      //创建文件
      File file = new File(filePath);
      System.out.println("File created.........");
      //将数据写入文件
      FileWriter writer = new FileWriter(file);
      String data = "Hello welcome to Nhooo";
      writer.write(data);
      System.out.println("Data entered.........");
      //设置文件权限
      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()方法-该方法接受的一个对象路径类和验证系统中的由给定的路径所表示的文件是否存在,并且JVM有权读取它。如果是这样,则返回true,否则返回false。

isWritable()方法-该方法接受的一个对象路径类和验证系统中的由给定的路径所表示的文件是否存在,并且JVM有权限写入。如果是这样,则返回true,否则返回false。

isExecutable()方法-该方法接受的一个对象路径由给定的路径所表示的文件是否存在于系统中并JVM有权限来执行它的类和验证。如果是这样,则返回true,否则返回false。

文件类

该类提供一个名为exists()的方法,如果系统中存在当前对象所代表的文件,则该方法返回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[]) {
      //创建路径对象
      Path path = Paths.get("D:\\sample.txt");
      //验证文件是否可读
      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