Class NonshareableBufferedDataOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.ka2ddo.yaac.io.NonshareableBufferedDataOutputStream
All Implemented Interfaces:
Closeable, DataOutput, Flushable, AutoCloseable

public final class NonshareableBufferedDataOutputStream extends FilterOutputStream implements DataOutput
This class is a merged duplicate of java.io.BufferedOutputStream and java.io.DataOutputStream, except that its methods are not synchronized, limiting its use to a single thread.
See Also:
  • Field Summary

    Fields inherited from class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new buffered output stream to write data to the specified underlying output stream.
    Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.
    NonshareableBufferedDataOutputStream(OutputStream out, byte[] buf, long previousFileSize)
    Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.
    Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Flushes this buffered output stream.
    int
    Return the number of times data was flushed to the next stream downstream.
    long
    Report the number of bytes written through this stream.
    int
    Get the count of bytes in the buffer that have not been forwarded to the next OutputStream down.
    void
    write(byte[] b, int off, int len)
    Writes len bytes from the specified byte array starting at offset off to this buffered output stream.
    void
    write(int b)
    Writes the specified byte to this buffered output stream.
    void
    write2Int(int v1, int v2)
    Writes 2 int values, each of which is comprised of four bytes, to the output stream.
    final void
    writeBoolean(boolean v)
    Writes a boolean to the underlying output stream as a 1-byte value.
    final void
    writeByte(int v)
    Writes out a byte to the underlying output stream as a 1-byte value.
    final void
    Writes out the string to the underlying output stream as a sequence of bytes.
    final void
    writeChar(int v)
    Writes a char to the underlying output stream as a 2-byte value, high byte first.
    final void
    Writes a string to the underlying output stream as a sequence of characters.
    final void
    writeDouble(double v)
    Converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the underlying output stream as an 8-byte quantity, high byte first.
    final void
    writeFloat(float v)
    Converts the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the underlying output stream as a 4-byte quantity, high byte first.
    final void
    writeInt(int v)
    Writes an int to the underlying output stream as four bytes, high byte first.
    final void
    writeLong(long v)
    Writes a long to the underlying output stream as eight bytes, high byte first.
    final void
    writeShort(int v)
    Writes a short to the underlying output stream as two bytes, high byte first.
    final void
    Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.

    Methods inherited from class java.io.FilterOutputStream

    close, write

    Methods inherited from class java.io.OutputStream

    nullOutputStream

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.io.DataOutput

    write
  • Constructor Details

    • NonshareableBufferedDataOutputStream

      public NonshareableBufferedDataOutputStream(OutputStream out)
      Creates a new buffered output stream to write data to the specified underlying output stream.
      Parameters:
      out - the underlying output stream.
    • NonshareableBufferedDataOutputStream

      public NonshareableBufferedDataOutputStream(OutputStream out, int size)
      Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.
      Parameters:
      out - the underlying output stream.
      size - the buffer size.
      Throws:
      IllegalArgumentException - if size < 8.
    • NonshareableBufferedDataOutputStream

      public NonshareableBufferedDataOutputStream(OutputStream out, byte[] buf)
      Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.
      Parameters:
      out - the underlying output stream.
      buf - the buffer to use
      Throws:
      IllegalArgumentException - if buf.length < 8.
    • NonshareableBufferedDataOutputStream

      public NonshareableBufferedDataOutputStream(OutputStream out, byte[] buf, long previousFileSize)
      Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.
      Parameters:
      out - the underlying output stream.
      buf - the buffer to use
      previousFileSize - number of bytes already in the file (suitable for appending to an existing file)
      Throws:
      IllegalArgumentException - if buf.length < 8.
  • Method Details

    • write

      public void write(int b) throws IOException
      Writes the specified byte to this buffered output stream.
      Specified by:
      write in interface DataOutput
      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - the byte to be written.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(byte[] b, int off, int len) throws IOException
      Writes len bytes from the specified byte array starting at offset off to this buffered output stream.

      Ordinarily this method stores bytes from the given array into this stream's buffer, flushing the buffer to the underlying output stream as needed. If the requested length is at least as large as this stream's buffer, however, then this method will flush the buffer and write the bytes directly to the underlying output stream. Thus redundant BufferedOutputStreams will not copy data unnecessarily.

      Specified by:
      write in interface DataOutput
      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - the data.
      off - the start offset in the data.
      len - the number of bytes to write.
      Throws:
      IOException - if an I/O error occurs.
    • flush

      public void flush() throws IOException
      Flushes this buffered output stream. This forces any buffered output bytes to be written out to the underlying output stream.
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class FilterOutputStream
      Throws:
      IOException - if an I/O error occurs.
    • writeBoolean

      public final void writeBoolean(boolean v) throws IOException
      Writes a boolean to the underlying output stream as a 1-byte value. The value true is written out as the value (byte)1; the value false is written out as the value (byte)0.
      Specified by:
      writeBoolean in interface DataOutput
      Parameters:
      v - a boolean value to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeByte

      public final void writeByte(int v) throws IOException
      Writes out a byte to the underlying output stream as a 1-byte value.
      Specified by:
      writeByte in interface DataOutput
      Parameters:
      v - a byte value to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeShort

      public final void writeShort(int v) throws IOException
      Writes a short to the underlying output stream as two bytes, high byte first.
      Specified by:
      writeShort in interface DataOutput
      Parameters:
      v - a short to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeChar

      public final void writeChar(int v) throws IOException
      Writes a char to the underlying output stream as a 2-byte value, high byte first.
      Specified by:
      writeChar in interface DataOutput
      Parameters:
      v - a char value to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeInt

      public final void writeInt(int v) throws IOException
      Writes an int to the underlying output stream as four bytes, high byte first.
      Specified by:
      writeInt in interface DataOutput
      Parameters:
      v - an int to be written.
      Throws:
      IOException - if an I/O error occurs.
    • write2Int

      public void write2Int(int v1, int v2) throws IOException
      Writes 2 int values, each of which is comprised of four bytes, to the output stream. The byte values to be written, in the order shown, are:
      
       (byte)(0xff & (v >> 24))
       (byte)(0xff & (v >> 16))
       (byte)(0xff & (v >>    8))
       (byte)(0xff & v)
       
      The bytes written by this method may be read by the readInt method of interface java.io.DataInput , which will then return an int equal to v.
      Parameters:
      v1 - the first int value to be written.
      v2 - the first int value to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeLong

      public final void writeLong(long v) throws IOException
      Writes a long to the underlying output stream as eight bytes, high byte first.
      Specified by:
      writeLong in interface DataOutput
      Parameters:
      v - a long to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeFloat

      public final void writeFloat(float v) throws IOException
      Converts the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the underlying output stream as a 4-byte quantity, high byte first.
      Specified by:
      writeFloat in interface DataOutput
      Parameters:
      v - a float value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeDouble

      public final void writeDouble(double v) throws IOException
      Converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the underlying output stream as an 8-byte quantity, high byte first.
      Specified by:
      writeDouble in interface DataOutput
      Parameters:
      v - a double value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeBytes

      public final void writeBytes(String s) throws IOException
      Writes out the string to the underlying output stream as a sequence of bytes. Each character in the string is written out, in sequence, by discarding its high eight bits.
      Specified by:
      writeBytes in interface DataOutput
      Parameters:
      s - a string of bytes to be written.
      Throws:
      IOException - if an I/O error occurs.
    • writeChars

      public final void writeChars(String s) throws IOException
      Writes a string to the underlying output stream as a sequence of characters. Each character is written to the data output stream as if by the writeChar method.
      Specified by:
      writeChars in interface DataOutput
      Parameters:
      s - a String value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeUTF

      public final void writeUTF(String str) throws IOException
      Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.

      First, two bytes are written to the output stream as if by the writeShort method giving the number of bytes to follow. This value is the number of bytes actually written out, not the length of the string. Following the length, each character of the string is output, in sequence, using the modified UTF-8 encoding for the character. If no exception is thrown, the counter written is incremented by the total number of bytes written to the output stream. This will be at least two plus the length of str, and at most two plus thrice the length of str.

      Specified by:
      writeUTF in interface DataOutput
      Parameters:
      str - a string to be written.
      Throws:
      IOException - if an I/O error occurs.
    • getNumWritten

      public long getNumWritten()
      Report the number of bytes written through this stream.
      Returns:
      total written byte count
    • getUnwrittenCount

      public int getUnwrittenCount()
      Get the count of bytes in the buffer that have not been forwarded to the next OutputStream down.
      Returns:
      backlog count in bytes
    • getNumFlushes

      public int getNumFlushes()
      Return the number of times data was flushed to the next stream downstream.
      Returns:
      int count of flush calls