Applications often interact with a file system, which is usually implemented as a hierarchy of files and directories starting from a root directory. Operating systems on which a Java virtual machine (JVM) runs typically support at least one file system. For example, Unix/Linux combines all mounted (attached and prepared) disks into one virtual file system. In contrast, Windows associates a separate file system with each active disk drive. Java offers access to the underlying operating system’s available file system(s) via its concrete java.io.File class, which this chapter explores.