At the core of JNFS is a client-side class library that mirrors the functionality of the standard Java file classes in the java.io package. Table 1 presents an overview of the file classes in the java.io package and their JNFS equivalents. Each of these JNFS client classes inherits from either its java.io counterpart or from an ancestor of its java.io counterpart.
package java.io | package jnfs | purpose |
File | RemoteFile | pathname abstraction, |
file attributes | ||
FileInputStream | RemoteFileInputStream | read-only input stream |
FileOutputStream | RemoteFileOutputStream | write-only output stream |
RandomAccessFile | RemoteRandomAccessFile | read/write, block-orient- |
ed random access | ||
FileReader | RemoteFileReader | character file input |
FileWriter | RemoteFileWriter | character file output |
FileServer | gives back filehandles, | |
provides user info |
The JNFS client classes transmit both file information and blocks of data across RMI. We describe in greater detail the purpose and functionality of the JNFS client classes below.