
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
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.