如何在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+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.