
In Java how to make file Read only or Writable? Also, how to check if file is Writable or not?
In this tutorial we will go over below different File Operations.
- file.createNewFile()
- file.canWrite()
- file.setWritable(true)
- file.setReadOnly()
If you have any of below questions then you are at right place.
- Why can we change the file attributes of a read-only file in Java?
- How to change file permission to Read-Only in Linux or MacOS?
- Can I set a file to read-only in Java?
- How to open a file as read-only with java?
Create Java class: CrunchifyFileReadOnlyWritable.java
package crunchify.com.java.tutorials;
import java.io.File;
import java.io.IOException;
/**
* @author Crunchify.com
* In Java How to make a File ReadOnly or Writable? How to check if file is Writable or not?
*/
public class CrunchifyFileReadOnlyWritable {
public static void main(String[] args) throws IOException {
try {
// Let's make file Read Only
crunchifyReadOnly();
Thread.sleep(10000);
// Let's double check if file is Writable or not?
crunchifyIsFileWritable();
Thread.sleep(10000);
// Let's make file Writable
crunchifyMakeWritable();
Thread.sleep(10000);
// Let's double check if file is Writable or not?
crunchifyIsFileWritable();
// Extra code to create new file in Java. By default it will be writable.
File file = new File("/Users/app/Download/newCrunchify.txt");
try {
// createNewFile() - Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.
// The check for the existence of the file and the creation of the file if it does not exist are a single
// operation that is atomic with respect to all other filesystem activities that might affect the file.
// Note: this method should not be used for file-locking, as the resulting protocol cannot be made to work reliably. The FileLock facility should be used instead.
boolean newCrunchifyFile = file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static void crunchifyReadOnly() {
File crunchifyFile = new File("/Users/app/Download/crunchify.txt");
// setReadOnly90 - Marks the file or directory named by this abstract pathname so that only read operations are allowed.
// After invoking this method the file or directory will not change until it is either deleted or marked to allow write access.
// On some platforms it may be possible to start the Java virtual machine with special privileges that allow it to modify files that are marked read-only.
// Whether or not a read-only file or directory may be deleted depends upon the underlying system.
// Let's make file ReadOnly.
boolean crunchifyCheck = crunchifyFile.setReadOnly();
if (crunchifyCheck) {
crunchifyPrint("Aaha.. File is ReadOnly now..");
} else {
crunchifyPrint("Oops.. setReadOnly() operation failed..");
}
}
private static void crunchifyIsFileWritable() {
File crunchifyFile = new File("/Users/app/Download/crunchify.txt");
// canWrite() - Tests whether the application can modify the file denoted by this abstract pathname.
// On some platforms it may be possible to start the Java virtual machine with special privileges that allow it to modify files that are marked read-only.
// Consequently this method may return true even though the file is marked read-only.
// Let's check if file is Writable or not.
boolean crunchifyCheck = crunchifyFile.canWrite();
if (crunchifyCheck) {
crunchifyPrint("Checking.. Aaha.. File is writable now..");
} else {
crunchifyPrint("Checking.. Oops.. File is readonly :(");
}
}
private static void crunchifyMakeWritable() {
File crunchifyFile = new File("/Users/app/Download/crunchify.txt");
// setWritable() - A convenience method to set the owner's write permission for this abstract pathname.
// On some platforms it may be possible to start the Java virtual machine with special privileges that allow it to modify files that disallow write operations.
// An invocation of this method of the form file.setWritable(arg) behaves in exactly the same way as the invocation.
// Let's make file Writable.
boolean crunchifyCheck = crunchifyFile.setWritable(true);
if (crunchifyCheck) {
crunchifyPrint("File is writable now..");
} else {
crunchifyPrint("Oops.. File is readonly..");
}
}
// Crunchify's simple Print utility.
private static void crunchifyPrint(String s) {
System.out.println(s);
}
}
Here is a list of all Java File() Operations:

Just run above program as a Java Application and you will see IntelliJ console result as below.
Console result:
Aaha.. File is ReadOnly now.. Checking.. Oops.. File is readonly.. File is writable now.. Checking.. Aaha.. File is writable.. Process finished with exit code 0
Let me know if you face any issue running above Java Program.
The post In Java How to make a File ReadOnly or Writable? How to create new file? How to check if file is Writable or not? appeared first on Crunchify.
0 Commentaires