An interface to a FileOutputStream on the FileServer, this class allows writing data from a file remotely. Complementing the RemoteFileInputStream class, this class is a descendant of OutputStream.
For efficiency, this class uses a client-side helper thread to send blocks to the server in the background. If more than four blocks of data are queued for delivery, a write() operation will block until space becomes available in the queue. Upon closing, it blocks until it has flushed all unwritten blocks to the server.