Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.monte.media.io
Class ByteArrayImageOutputStream

    java.lang.Object
      javax.imageio.stream.ImageInputStreamImpl
          javax.imageio.stream.ImageOutputStreamImpl
              org.monte.media.io.ByteArrayImageOutputStream

All Implemented Interfaces:
  java.io.DataInput, java.io.DataOutput, javax.imageio.stream.ImageInputStream, javax.imageio.stream.ImageOutputStream

    public class ByteArrayImageOutputStream

extends javax.imageio.stream.ImageOutputStreamImpl

This class implements an image output stream in which the data is written into a byte array. The buffer automatically grows as data is written to it. The data can be retrieved using `toByteArray()`, `toImageOutputStream()` and `toOutputStream()`.

Closing a `ByteArrayImageOutputStream` has no effect. The methods in this class can be called after the stream has been closed without generating an `IOException`.

Version:
  1.0.1 2011-01-23 Implements length method.
  1.0 2011-01-18 Created.
Author:
  Werner Randelshofer

Field Summary
`protected byte[]` | `buf` An array of bytes that was provided by the creator of the stream.
`protected int` | `count` The index one greater than the last valid character in the input stream buffer.

Fields inherited from class javax.imageio.stream.ImageInputStreamImpl
`bitOffset, byteOrder, flushedPos, streamPos`

Constructor Summary
`ByteArrayImageOutputStream()`
`ByteArrayImageOutputStream(byte[] buf)`
`ByteArrayImageOutputStream(byte[] buf, java.nio.ByteOrder byteOrder)`
`ByteArrayImageOutputStream(byte[] buf, int offset, int length, java.nio.ByteOrder byteOrder)`
`ByteArrayImageOutputStream(java.nio.ByteOrder byteOrder)`
`ByteArrayImageOutputStream(int initialCapacity)`

Method Summary
`int` | `available()` Returns the number of remaining bytes that can be read (or skipped over) from this input stream.
`void` | `clear()` Resets the `count` field of this byte array output stream to zero, so that all currently accumulated output in the output stream is discarded.
`void` | `close()` Closing a `ByteArrayInputStream` has no effect.
`byte[]` | `getBuffer()` Returns the internally used byte buffer.
`long` | `getStreamPosition()`
`long` | `length()`
`int` | `read()` Reads the next byte of data from this input stream.
`int` | `read(byte[] b, int off, int len)` Reads up to `len` bytes of data into an array of bytes from this input stream.
`void` | `seek(long pos)`
`long` | `skip(long n)` Skips `n` bytes of input from this input stream.
`byte[]` | `toByteArray()` Creates a newly allocated byte array.
`void` | `toImageOutputStream(javax.imageio.stream.ImageOutputStream out)` Writes the contents of the byte array into the specified image output stream.
`void` | `toOutputStream(java.io.OutputStream out)` Writes the contents of the byte array into the specified output stream.
`void` | `write(byte[] b)` Writes the specified byte array to this output stream.
`void` | `write(byte[] b, int off, int len)` Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.
`void` | `write(int b)` Writes the specified byte to this output stream.

Methods inherited from class javax.imageio.stream.ImageOutputStreamImpl
`flushBits, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF`

Methods inherited from class javax.imageio.stream.ImageInputStreamImpl
`checkClosed, finalize, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, isCached, isCachedFile, isCachedMemory, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, setByteOrder, skipBytes, skipBytes`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.imageio.stream.ImageOutputStream
`flushBefore`

Methods inherited from interface javax.imageio.stream.ImageInputStream
`flush, getBitOffset, getByteOrder, getFlushedPosition, isCached, isCachedFile, isCachedMemory, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, setByteOrder, skipBytes, skipBytes`

Field Detail

### buf

    protected byte[] buf

  An array of bytes that was provided by the creator of the stream. Elements `buf[0]` through `buf[count-1]` are the only bytes that can ever be read from the stream; element `buf[streamPos]` is the next byte to be read.

### count

    protected int count

  The index one greater than the last valid character in the input stream buffer. This value should always be nonnegative and not larger than the length of `buf`. It is one greater than the position of the last byte within `buf` that can ever be read from the input stream buffer.

Constructor Detail

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream()

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream(int initialCapacity)

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream(byte[] buf)

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream(byte[] buf,
                                      java.nio.ByteOrder byteOrder)

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream(byte[] buf,
                                      int offset,
                                      int length,
                                      java.nio.ByteOrder byteOrder)

### ByteArrayImageOutputStream

    public ByteArrayImageOutputStream(java.nio.ByteOrder byteOrder)

Method Detail

### read

    public int read()
             throws java.io.IOException

  Reads the next byte of data from this input stream. The value byte is returned as an `int` in the range `0` to `255`. If no byte is available because the end of the stream has been reached, the value `-1` is returned.

  This `read` method cannot block.

  Specified by:
    `read` in interface `javax.imageio.stream.ImageInputStream`
  Specified by:
    `read` in class `javax.imageio.stream.ImageInputStreamImpl`
  Returns:
    the next byte of data, or `-1` if the end of the stream has been reached.
  Throws:
    `java.io.IOException`

### read

    public int read(byte[] b,
                    int off,
                    int len)
             throws java.io.IOException

  Reads up to `len` bytes of data into an array of bytes from this input stream. If `streamPos` equals `count`, then `-1` is returned to indicate end of file. Otherwise, the number `k` of bytes read is equal to the smaller of `len` and `count-streamPos`. If `k` is positive, then bytes `buf[streamPos]` through `buf[streamPos+k-1]` are copied into `b[off]` through `b[off+k-1]` in the manner performed by `System.arraycopy`. The value `k` is added into `streamPos` and `k` is returned.

  This `read` method cannot block.

  Specified by:
    `read` in interface `javax.imageio.stream.ImageInputStream`
  Specified by:
    `read` in class `javax.imageio.stream.ImageInputStreamImpl`
  Parameters:
    `b` - the buffer into which the data is read.
    `off` - the start offset in the destination array `b`
    `len` - the maximum number of bytes read.
  Returns:
    the total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
  Throws:
    `java.lang.NullPointerException` - If `b` is `null`.
    `java.lang.IndexOutOfBoundsException` - If `off` is negative, `len` is negative, or `len` is greater than `b.length - off`
    `java.io.IOException`

### skip

    public long skip(long n)

  Skips `n` bytes of input from this input stream. Fewer bytes might be skipped if the end of the input stream is reached. The actual number `k` of bytes to be skipped is equal to the smaller of `n` and `count-streamPos`. The value `k` is added into `streamPos` and `k` is returned.

  Parameters:
    `n` - the number of bytes to be skipped.
  Returns:
    the actual number of bytes skipped.

### available

    public int available()

  Returns the number of remaining bytes that can be read (or skipped over) from this input stream.

  The value returned is `count - streamPos`, which is the number of bytes remaining to be read from the input buffer.

  Returns:
    the number of remaining bytes that can be read (or skipped over) from this input stream without blocking.

### close

    public void close()

  Closing a `ByteArrayInputStream` has no effect. The methods in this class can be called after the stream has been closed without generating an `IOException`.

  Specified by:
    `close` in interface `javax.imageio.stream.ImageInputStream`
  Overrides:
    `close` in class `javax.imageio.stream.ImageInputStreamImpl`

### getStreamPosition

    public long getStreamPosition()
                           throws java.io.IOException

  Specified by:
    `getStreamPosition` in interface `javax.imageio.stream.ImageInputStream`
  Overrides:
    `getStreamPosition` in class `javax.imageio.stream.ImageInputStreamImpl`
  Throws:
    `java.io.IOException`

### seek

    public void seek(long pos)
              throws java.io.IOException

  Specified by:
    `seek` in interface `javax.imageio.stream.ImageInputStream`
  Overrides:
    `seek` in class `javax.imageio.stream.ImageInputStreamImpl`
  Throws:
    `java.io.IOException`

### write

    public void write(int b)
               throws java.io.IOException

  Writes the specified byte to this output stream.

  Specified by:
    `write` in interface `java.io.DataOutput`
  Specified by:
    `write` in interface `javax.imageio.stream.ImageOutputStream`
  Specified by:
    `write` in class `javax.imageio.stream.ImageOutputStreamImpl`
  Parameters:
    `b` - the byte to be written.
  Throws:
    `java.io.IOException`

### write

    public void write(byte[] b)
               throws java.io.IOException

  Writes the specified byte array to this output stream.

  Specified by:
    `write` in interface `java.io.DataOutput`
  Specified by:
    `write` in interface `javax.imageio.stream.ImageOutputStream`
  Overrides:
    `write` in class `javax.imageio.stream.ImageOutputStreamImpl`
  Parameters:
    `b` - the data.
  Throws:
    `java.io.IOException`

### write

    public void write(byte[] b,
                      int off,
                      int len)
               throws java.io.IOException

  Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.

  Specified by:
    `write` in interface `java.io.DataOutput`
  Specified by:
    `write` in interface `javax.imageio.stream.ImageOutputStream`
  Specified by:
    `write` in class `javax.imageio.stream.ImageOutputStreamImpl`
  Parameters:
    `b` - the data.
    `off` - the start offset in the data.
    `len` - the number of bytes to write.
  Throws:
    `java.io.IOException`

### toOutputStream

    public void toOutputStream(java.io.OutputStream out)
                        throws java.io.IOException

  Writes the contents of the byte array into the specified output stream.

  Parameters:
    `out` -
  Throws:
    `java.io.IOException`

### toImageOutputStream

    public void toImageOutputStream(javax.imageio.stream.ImageOutputStream out)
                             throws java.io.IOException

  Writes the contents of the byte array into the specified image output stream.

  Parameters:
    `out` -
  Throws:
    `java.io.IOException`

### toByteArray

    public byte[] toByteArray()

  Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it.

  Returns:
    the current contents of this output stream, as a byte array.
  See Also:
    `ByteArrayOutputStream.size()`

### getBuffer

    public byte[] getBuffer()

  Returns the internally used byte buffer.

### length

    public long length()

  Specified by:
    `length` in interface `javax.imageio.stream.ImageInputStream`
  Overrides:
    `length` in class `javax.imageio.stream.ImageInputStreamImpl`

### clear

    public void clear()

  Resets the `count` field of this byte array output stream to zero, so that all currently accumulated output in the output stream is discarded. The output stream can be used again, reusing the already allocated buffer space.

  See Also:
    `ByteArrayInputStream.count`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD