企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 如何在 Java 中创建只读文件 > 原文: [https://beginnersbook.com/2014/05/how-to-make-a-file-read-only-in-java/](https://beginnersbook.com/2014/05/how-to-make-a-file-read-only-in-java/) 在 java 中,使文件只读是非常容易的。在本教程中,我们将学习以下三点。 1)如何使文件只读 2)如何检查现有文件是否处于只读模式 3)如何在 java 中创建可写的只读文件。 #### 1)将文件属性更改为只读 要使文件只读,我们可以使用`File`类的`setReadOnly()`方法。它返回一个布尔值,我们可以进一步验证操作是否成功,就像我在下面的程序中一样。正如您在下面的程序中看到的那样,我将文件属性更改为只读取我的计算机“C 盘”中存在的文件`Myfile.txt`。 ```java import java.io.File; import java.io.IOException; public class ReadOnlyChangeExample { public static void main(String[] args) throws IOException { File myfile = new File("C://Myfile.txt"); //making the file read only boolean flag = myfile.setReadOnly(); if (flag==true) { System.out.println("File successfully converted to Read only mode!!"); } else { System.out.println("Unsuccessful Operation!!"); } } } ``` 输出: ```java File successfully converted to Read only mode!! ``` #### 2)检查文件是可写还是只读 为了检查文件属性,我们可以使用文件类的`canWrite()`方法。如果文件是可写的,则此方法返回`true`,否则返回`false`。当我在已经设置为仅在之前的程序中读取的文件`Myfile.txt`上执行操作时,我将输出为`"File is read only"`。 ```java import java.io.File; import java.io.IOException; public class CheckAttributes { public static void main(String[] args) throws IOException { File myfile = new File("C://Myfile.txt"); if (myfile.canWrite()) { System.out.println("File is writable."); } else { System.out.println("File is read only."); } } } ``` 输出: ```java File is read only. ``` #### 3)如何在 java 中创建可写的只读文件 要将只读文件设置为可写文件,我们可以使用`setWritable()`方法。此方法也可用于使文件只读。 `file.setWritable(true)`:使文件可写。 `file.setWritable(false)`:使文件只读。 ```java import java.io.File; import java.io.IOException; public class MakeWritable { public static void main(String[] args) throws IOException { File myfile = new File("C://Myfile.txt"); //changing the file mode to writable myfile.setWritable(true); if (myfile.canWrite()) { System.out.println("File is writable."); } else { System.out.println("File is read only."); } } } ``` 输出: ```java File is writable. ``` #### 参考: [`File` Javadoc](https://docs.oracle.com/javase/6/docs/api/java/io/File.html "javadoc")