The FileSystem
class is part of the java.nio.file
package.It represents a file system, which provides access to file stores, file attributes, and files themselves.
FileSystem
acts as a factory for Path
objects.It abstracts the underlying file system (e.g., Windows, Unix, ZIP file system).You don’t create FileSystem
instances directly; instead, you obtain them via the FileSystems
utility class.
How to Obtain a FileSystem Instance

Commonly Used Methods

Simple Program Using FileSystem
Problem Statement:
Write a Java program that obtains the default file system and prints all root directories on the system.
import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Path; public class SimpleFileSystemExample { public static void main(String[] args) { FileSystem fs = FileSystems.getDefault(); System.out.println("Root directories in the default file system:"); for (Path root : fs.getRootDirectories()) { System.out.println(root); } } }
Problem Statement:
Create a Java program that:
- Uses the default
FileSystem
. - Lists all file stores (disks/partitions) and prints their name, type, total space, and usable space.
- Lists all root directories.
- Reads and prints the supported file attribute views.
- Checks if the file system is read-only or open.
import java.nio.file.*; import java.nio.file.attribute.FileStoreAttributeView; import java.io.IOException; public class FileSystemDetails { public static void main(String[] args) { FileSystem fs = FileSystems.getDefault(); System.out.println("Listing file stores:"); for (FileStore store : fs.getFileStores()) { try { System.out.println("Name: " + store.name()); System.out.println("Type: " + store.type()); System.out.println("Total Space (bytes): " + store.getTotalSpace()); System.out.println("Usable Space (bytes): " + store.getUsableSpace()); System.out.println("-------------------------"); } catch (IOException e) { System.err.println("Error getting store info: " + e.getMessage()); } } System.out.println("\nRoot directories:"); for (Path root : fs.getRootDirectories()) { System.out.println(root); } System.out.println("\nSupported File Attribute Views:"); for (String view : fs.supportedFileAttributeViews()) { System.out.println(view); } System.out.println("\nIs the file system read-only? " + fs.isReadOnly()); System.out.println("Is the file system open? " + fs.isOpen()); } }
FileSystem
abstracts the actual file system of the OS or custom file systems.
- Use
FileSystems.getDefault()
to get the default system. - Provides methods to access roots, file stores, attribute views.
- Useful for querying system disk info and creating/manipulating
Path
objects.