Class LocalDataOutputStream

    • Constructor Detail

      • LocalDataOutputStream

        public LocalDataOutputStream​(File file)
                              throws IOException
        Constructs a new LocalDataOutputStream object from a given File object.
        Parameters:
        file - the File object the data stream is read from
        Throws:
        IOException - thrown if the data output stream cannot be created
    • Method Detail

      • close

        public void close()
                   throws IOException
        Description copied from class: FSDataOutputStream
        Closes the output stream. After this method returns, the implementation must guarantee that all data written to the stream is persistent/visible, as defined in the class-level docs.

        The above implies that the method must block until persistence can be guaranteed. For example for distributed replicated file systems, the method must block until the replication quorum has been reached. If the calling thread is interrupted in the process, it must fail with an IOException to indicate that persistence cannot be guaranteed.

        If this method throws an exception, the data in the stream cannot be assumed to be persistent.

        Implementation note: This overrides the method defined in OutputStream as abstract to force implementations of the FSDataOutputStream to implement this method directly.

        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Specified by:
        close in class FSDataOutputStream
        Throws:
        IOException - Thrown, if an error occurred while closing the stream or guaranteeing that the data is persistent.
      • flush

        public void flush()
                   throws IOException
        Description copied from class: FSDataOutputStream
        Flushes the stream, writing any data currently buffered in stream implementation to the proper output stream. After this method has been called, the stream implementation must not hold onto any buffered data any more.

        A completed flush does not mean that the data is necessarily persistent. Data persistence can is only assumed after calls to FSDataOutputStream.close() or FSDataOutputStream.sync().

        Implementation note: This overrides the method defined in OutputStream as abstract to force implementations of the FSDataOutputStream to implement this method directly.

        Specified by:
        flush in interface Flushable
        Specified by:
        flush in class FSDataOutputStream
        Throws:
        IOException - Thrown if an I/O error occurs while flushing the stream.
      • sync

        public void sync()
                  throws IOException
        Description copied from class: FSDataOutputStream
        Flushes the data all the way to the persistent non-volatile storage (for example disks). The method behaves similar to the fsync function, forcing all data to be persistent on the devices.
        Specified by:
        sync in class FSDataOutputStream
        Throws:
        IOException - Thrown if an I/O error occurs
      • getPos

        public long getPos()
                    throws IOException
        Description copied from class: FSDataOutputStream
        Gets the position of the stream (non-negative), defined as the number of bytes from the beginning of the file to the current writing position. The position corresponds to the zero-based index of the next byte that will be written.

        This method must report accurately report the current position of the stream. Various components of the high-availability and recovery logic rely on the accurate

        Specified by:
        getPos in class FSDataOutputStream
        Returns:
        The current position in the stream, defined as the number of bytes from the beginning of the file to the current writing position.
        Throws:
        IOException - Thrown if an I/O error occurs while obtaining the position from the stream implementation.