# 如何在 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")