Java — Create Read only file or Mark a file as Read only | Code Factory
2 min readJul 22, 2020
Donate : Link
WordPress Blog : Link
You’ll learn how to create a read only file or mark an existing file as read only.
Java create Read only file
The following example demonstrates how to create a read-only file using the createFile()
method of java.nio.file.Files
class.
Posiz is not working on Windows.
package com.example.java.programming.file;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;/**
* @author code.factory
*
*/
public class CreateReadOnlyFileExample {
public static void main(String... args) {
try {
// File Path
Path filePath = Paths.get("test.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());
}
}
}
Create a Read only file or Mark a file as Read only
There is another way to create a read only file or mark an existing file as read only using the java.io.File class’s setReadOnly()
or setWritable()
methods. The following example demonstrates the usage.
Note: you should try to use the previous method because that’s extensible and gives you more control.
Below code will work on Windows.
package com.example.java.programming.file;import java.io.File;
import java.io.IOException;/**
* @author code.factory
*
*/
public class CreateReadOnlyFileExample {
public static void main(String... args) {
try {
// File Path
File file = new File("test.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());
}
}
}