Java - File setWritable(boolean writeable, boolean ownerOnly) method



Description

The Java File setWritable(boolean writeable, boolean ownerOnly) method is used to set or modify the write permission of a file, with an option to restrict it to the owner only.

  • If writeable is true, the file is made writeable.

  • If writeable is false, the file is made readonly(not writeable).

  • If ownerOnly is true, the permission applies only to the owner of the file.

  • If ownerOnly is false, the permission applies to all users.

Declaration

Following is the declaration for java.io.File.setWritable(boolean writeable, boolean ownerOnly) method −

public boolean setWritable(boolean writeable, boolean ownerOnly)

Parameters

  • writeable− true sets the access permission to allow write operations, false denies write operation.

  • ownerOnly− true sets the write permission only to the owner's write permission; otherwise, it applies to everybody.

Return Value

This method returns true if the operation succeeded, else false.

Exception

  • SecurityException − If a security manager exists and its method denies write access to the pathnames.

Example - Usage of File setWritable(boolean writeable, boolean ownerOnly) method

The following example shows the usage of Java File setWritable(boolean writeable, boolean ownerOnly) method. We've created a File reference. Then we're creating a File Object using a file path which is present in the given location. Using setWritable() method, we're trying to make the file writeable and getting the result in boolean variable. Then we're printing the status of file as writeable using canWrite() method and result is printed.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      boolean bool = false;      
      try {     
      
         // create new File objects
         f = new File("F:/test.txt");
         
         // set writeable as true for owner
         bool = f.setWritable(true, true);
         
         // prints
         System.out.println("setWritable() succeeded?: "+bool);
         
         // can write
         bool = f.canWrite();
         
         // prints
         System.out.print("Can write?: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

setWritable() succeeded?: true
Can write?: true

Now, you can check that file is renamed.

Example - Usage of File setWritable(boolean writeable, boolean ownerOnly) method

The following example shows the usage of Java File setWritable(boolean writeable, boolean ownerOnly) method. We've created a File reference. Then we're creating a File Object using a file path which is present in the given location and was made writeable in previous example. Using setWritable() method, we're trying to make the file non-writeable and getting the result in boolean variable. Then we're printing the status of file as writeable using canWrite() method and result is printed.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      boolean bool = false;      
      try {     
      
         // create new File objects
         f = new File("F:/test.txt");
         
         // set writeable as true for all
         bool = f.setWritable(true, false);
         
         // prints
         System.out.println("setWritable() succeeded?: "+bool);
         
         // can write
         bool = f.canWrite();
         
         // prints
         System.out.print("Can write?: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

setWritable() succeeded?: true
Can write?: true

Example - Setting Write Permission for Owner Only and All Users

The following example shows the usage of Java File setWritable(boolean writeable, boolean ownerOnly) method.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {
      // Create a File object representing an existing file
      File file = new File("example.txt");

      // Check if the file exists
      if (file.exists()) {
         // Set writable permission for the owner only
         if (file.setWritable(true, true)) {
            System.out.println("File is now writable only by the owner: " + file.getAbsolutePath());
         } else {
            System.out.println("Failed to set write permission for the owner.");
         }

         // Set writable permission for all users
         if (file.setWritable(true, false)) {
            System.out.println("File is now writable by all users.");
         } else {
            System.out.println("Failed to set write permission for all users.");
         }
      } else {
         System.out.println("File does not exist.");
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

File is writeable only by the owner: C:\Users\YourName\example.txt
File is now writeable by all users.

Explanation

  • The program creates a File object for "example.txt".

  • It first checks if the file exists before modifying its permissions.

  • It calls setWritable(true, true) to allow only the owner to write to the file.

  • It then calls setWritable(true, false) to allow all users to write.

  • It prints messages indicating whether the operations were successful.

java_io_file_methods.htm
Advertisements