File class represents a file in the
  local file system.
    
exits() method tells you that. 
    createNewFile() method creates the file if it doesn't exist.
    
isDirectory() method to test for directory-ness.
  mkdir() method (more Unixisms) to turn a File into an
  existing directory (permission permitting).
  
RandomAccessFile represents random-access streams.
    DataInput and  DataOutput interfaces. 
      readBoolean(), writeDouble() and so on. 
      
seek(long n) method sets the file pointer to n.
    raf.seek(raf.length) moves to the end of the file. 
    
getFilePointer() returns the file pointer.
  DataInput and DataOutput
  methods (e.g., writeDouble() and readBoolean()).
  
Comparable is an example of a single-feature
    interface. 
      
Closeable: The class instance can be closed,
    releasing allocated resources.
void close() throws IOException
Flushable: The class instance can flushed, pushing
    data out of the pipe into the sink.
void flush()
Readable: The class instance is able to move
    characters from the source into a CharBuffer.
int read(CharBuffer cb)
Appendable: The class instance adds new characters
    to the end of existing characters, rather than overwriting them.
Appendable append(char c) Appendable append(CharSequence cs)