在这篇快速而简单的文章中,您将学习如何创建只读文件或将现有文件标记为只读。
以下示例演示如何使用 java.nio.file.Files
类的 createFile()
方法创建只读文件。
import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
public class CreateReadOnlyFileExample {
public static void main(String[] args) {
try {
// File Path
Path filePath = Paths.get("foo.txt");
// File permissions (Read only for USER, GROUP, and OTHER)
Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("r--r--r--");
FileAttribute<Set<PosixFilePermission>> fileAttributes = PosixFilePermissions.asFileAttribute(permissions);
// Create a file at the given file path with the given attributes
Files.createFile(filePath, fileAttributes);
System.out.println("Read only file created successfully");
} catch (FileAlreadyExistsException e) {
System.out.println("File already exists");
} catch (IOException e) {
System.out.println("An I/O error occurred: " + e.getMessage());
} catch (SecurityException e) {
System.out.println("No permission to create file: " + e.getMessage());
}
}
}
还有另一种方法可以使用 java.io.File 类的 setReadOnly()
或 setWritable()
方法创建只读文件或将现有文件标记为只读。 下面的例子演示了用法。
注意: 您应该尝试使用前面的方法,因为它是可扩展的,并为您提供更多控制。
import java.io.File;
import java.io.IOException;
public class CreateReadOnlyFileExample1 {
public static void main(String[] args) {
try {
// File Path
File file = new File("bar.txt");
boolean isCreated = file.createNewFile();
if(isCreated) {
System.out.println("File created successfully");
boolean success = file.setReadOnly(); // or file.setWritable(false);
if(success) {
System.out.println("File marked as read only");
} else {
System.out.println("File could not be marked as read only");
}
} else {
System.out.println("File already exists");
}
} catch (IOException e) {
System.out.println("An I/O error occurred: " + e.getMessage());
} catch (SecurityException e) {
System.out.println("No permission to create file: " + e.getMessage());
}
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.callicoder.com/java-create-read-only-file/
内容来源于网络,如有侵权,请联系作者删除!