Class DataChunkOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.monte.media.avi.DataChunkOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public class DataChunkOutputStream extends FilterOutputStream
This output stream filter supports common data types used inside of an AVI RIFF Data Chunk.
Author:
Werner Randelshofer
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected long
    The number of bytes written to the data output stream so far.

    Fields inherited from class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    DataChunkOutputStream(OutputStream out, boolean forwardFlushAndClose)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Sets the value of the counter written to 0.
    void
     
    void
     
    protected void
    incCount(int value)
    Increases the written counter by the specified value until it reaches Long.MAX_VALUE.
    final long
    Returns the current value of the counter written, the number of bytes written to this data output stream so far.
    void
    write(byte[] b, int off, int len)
    Writes len bytes from the specified byte array starting at offset off to the underlying output stream.
    void
    write(int b)
    Writes the specified byte (the low eight bits of the argument b) to the underlying output stream.
    final void
    writeByte(int v)
    Writes out a byte to the underlying output stream as a 1-byte value.
    void
    writeInt(int v)
    Writes an int to the underlying output stream as four bytes, high byte first.
    void
    writeInts24(int[] v, int off, int len)
    Writes unsigned 24 bit integer values.
    void
    writeLong(long v)
     
    void
    writeShort(int v)
    Writes a signed 16 bit integer value.
    void
    writeShorts(short[] v, int off, int len)
    Writes a signed 16 bit integer value.
    void
    Writes an chunk type identifier (4 bytes).
    void
    writeUInt(long v)
    Writes an unsigned 32 bit integer value.
    void
    writeUShort(int v)
     

    Methods inherited from class java.io.FilterOutputStream

    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
  • Field Details

    • written

      protected long written
      The number of bytes written to the data output stream so far. If this counter overflows, it will be wrapped to Integer.MAX_VALUE.
  • Constructor Details

    • DataChunkOutputStream

      public DataChunkOutputStream(OutputStream out)
    • DataChunkOutputStream

      public DataChunkOutputStream(OutputStream out, boolean forwardFlushAndClose)
  • Method Details

    • writeType

      public void writeType(String s) throws IOException
      Writes an chunk type identifier (4 bytes).
      Parameters:
      s - A string with a length of 4 characters.
      Throws:
      IOException
    • writeByte

      public final void writeByte(int v) throws IOException
      Writes out a byte to the underlying output stream as a 1-byte value. If no exception is thrown, the counter written is incremented by 1.
      Parameters:
      v - a byte value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • 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 the underlying output stream. If no exception is thrown, the counter written is incremented by len.
      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.
      See Also:
    • write

      public void write(int b) throws IOException
      Writes the specified byte (the low eight bits of the argument b) to the underlying output stream. If no exception is thrown, the counter written is incremented by 1.

      Implements the write method of OutputStream.

      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - the byte to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeInt

      public void writeInt(int v) throws IOException
      Writes an int to the underlying output stream as four bytes, high byte first. If no exception is thrown, the counter written is incremented by 4.
      Parameters:
      v - an int to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeUInt

      public void writeUInt(long v) throws IOException
      Writes an unsigned 32 bit integer value.
      Parameters:
      v - The value
      Throws:
      IOException
    • writeShort

      public void writeShort(int v) throws IOException
      Writes a signed 16 bit integer value.
      Parameters:
      v - The value
      Throws:
      IOException
    • writeShorts

      public void writeShorts(short[] v, int off, int len) throws IOException
      Writes a signed 16 bit integer value.
      Parameters:
      v - The value
      Throws:
      IOException
    • writeInts24

      public void writeInts24(int[] v, int off, int len) throws IOException
      Writes unsigned 24 bit integer values.
      Parameters:
      v - The value
      Throws:
      IOException
    • writeLong

      public void writeLong(long v) throws IOException
      Throws:
      IOException
    • writeUShort

      public void writeUShort(int v) throws IOException
      Throws:
      IOException
    • incCount

      protected void incCount(int value)
      Increases the written counter by the specified value until it reaches Long.MAX_VALUE.
    • size

      public final long size()
      Returns the current value of the counter written, the number of bytes written to this data output stream so far. If the counter overflows, it will be wrapped to Integer.MAX_VALUE.
      Returns:
      the value of the written field.
      See Also:
    • clearCount

      public void clearCount()
      Sets the value of the counter written to 0.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class FilterOutputStream
      Throws:
      IOException
    • flush

      public void flush() throws IOException
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class FilterOutputStream
      Throws:
      IOException