Java - File getUsableSpace() method



Description

The Java File getUsableSpace() method returns the number of bytes available to this virtual machine on the partitioned named by this abstract name. This method usually provide a more accurate estimate of how much new data can actually be written as this method checks for write permissions and other operating system restrictions.

Declaration

Following is the declaration for java.io.File.getUsableSpace() method −

 public long getUsableSpace() 

Parameters

NA

Return Value

The method returns the number of available bytes on the partition.

Exception

  • SecurityException − If a security manager exists and it denies RuntimePermission("getFileSystemAttributes") or its SecurityManager. checkRead(String) denies read access to the file name by this abstract pathname.

Example - Usage of File getUsableSpace() method

The following example shows the usage of Java File getUsableSpace() method. We've created a File reference. Then we're creating a File Object using F:/test.txt which is present in the provided location. Now using getUsableSpace() method, we're getting the usable space in the partition.

FileDemo.java

 package com.tutorialspoint; import java.io.File; public class FileDemo { public static void main(String[] args) { File f = null; long v; boolean bool = false; try { // create new file f = new File("F:\\test.txt"); // get number of usable bytes v = f.getUsableSpace(); // true if the file path exists bool = f.exists(); // if file exists if(bool) { // prints System.out.print("number of usable bytes: "+v); } } catch(Exception e) { // if any error occurs e.printStackTrace(); } } } 

Output

Let us compile and run the above program, this will produce the following result(depends on system's free space)−

 number of usable bytes: 163281137664 

Example - Usage of File getUsableSpace() method

The following example shows the usage of Java File getUsableSpace() method. We've created a File reference. Then we're creating a File Object using C:/test.txt which is present in the provided location. Now using getUsableSpace() method, we're getting usable bytes in the partition.

FileDemo.java

 package com.tutorialspoint; import java.io.File; public class FileDemo { public static void main(String[] args) { File f = null; long v; boolean bool = false; try { // create new file f = new File("C:\\test"); // get number of usable bytes v = f.getUsableSpace(); // true if the file path exists bool = f.exists(); // if file exists if(bool) { // prints System.out.print("number of usable bytes: "+v); } } catch(Exception e) { // if any error occurs e.printStackTrace(); } } } 

Output

Let us compile and run the above program, this will produce the following result(depends on system's free space)−

 number of usable bytes: 4245991424 

Example - Usage of File getUsableSpace() method

FileDemo.java

 package com.tutorialspoint; import java.io.File; public class FileDemo { public static void main(String[] args) { // Create a File object representing a drive or directory File file = new File("C:\\"); // Use "/" for Linux/macOS // Get usable space in bytes long usableSpace = file.getUsableSpace(); // Convert bytes to gigabytes for better readability double usableSpaceGB = usableSpace / (1024.0 * 1024 * 1024); // Print usable space System.out.println("Usable space on drive: " + usableSpaceGB + " GB"); } } 

Output

Let us compile and run the above program, this will produce the following result (depends on system's free space)−

 Usable space on drive: 120.5 GB 

Explanation

  • Creating a File Object− The File object is initialized with "C:\\" (for Windows) or "/" (for Linux/macOS). It represents the root directory of the filesystem.

  • Using getUsableSpace()− o The method returns the actual usable storage space in bytes, considering user permissions and quotas. The value is converted to gigabytes (GB) for better readability.

  • getUsableSpace() differs from getFreeSpace() as it accounts for user permissions and system-imposed limits.

  • If a program runs with restricted permissions, getUsableSpace() may return a lower value than getFreeSpace().

  • It helps determine if the JVM has actual writable space available.

java_io_file_methods.htm
Advertisements