Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.imageio.stream
Class FileCacheImageOutputStream

    java.lang.Object
      |
      +--javax.imageio.stream.ImageInputStreamImpl
            |
            +--javax.imageio.stream.ImageOutputStreamImpl
                  |
                  +--javax.imageio.stream.FileCacheImageOutputStream

All Implemented Interfaces:
  DataInput, DataOutput, ImageInputStream, ImageOutputStream

public class FileCacheImageOutputStream
extends ImageOutputStreamImpl

An implementation of `ImageOutputStream` that writes its output to a regular `OutputStream`. A file is used to cache data until it is flushed to the output stream.

Field Summary

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

Constructor Summary
`FileCacheImageOutputStream(OutputStream stream, File cacheDir)` Constructs a `FileCacheImageOutputStream` that will write to a given `outputStream`.

Method Summary
`void` | `close()` Closes this `FileCacheImageOututStream`.
`void` | `flushBefore(long pos)` Flushes all data prior to the given position to the underlying destination, such as an `OutputStream` or `File`.
`boolean` | `isCached()` Returns `true` since this `ImageOutputStream` caches data in order to allow seeking backwards.
`boolean` | `isCachedFile()` Returns `true` since this `ImageOutputStream` maintains a file cache.
`boolean` | `isCachedMemory()` Returns `false` since this `ImageOutputStream` does not maintain a main memory cache.
`long` | `length()` Returns the total length of the stream, if known.
`int` | `read()` Reads a single byte from the stream and returns it as an integer between 0 and 255.
`int` | `read(byte[] b, int off, int len)` Reads up to `len` bytes from the stream, and stores them into `b` starting at index `off`.
`void` | `seek(long pos)` Sets the current stream position and resets the bit offset to 0.
`void` | `write(byte[] b, int off, int len)` Writes a sequence of bytes to the stream at the current position.
`void` | `write(int b)` Writes a single byte to the stream at the current position.

Methods inherited from class javax.imageio.stream.ImageOutputStreamImpl
`flushBits, write, 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, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, 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.ImageInputStream
`flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, 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`

Constructor Detail

### FileCacheImageOutputStream

    public FileCacheImageOutputStream(OutputStream stream,
                                      File cacheDir)
                               throws IOException

  Constructs a `FileCacheImageOutputStream` that will write to a given `outputStream`.

  A temporary file is used as a cache. If `cacheDir`is non-`null` and is a directory, the file will be created there. If it is `null`, the system-dependent default temporary-file directory will be used (see the documentation for `File.createTempFile` for details).

Parameters:
  `stream` - an `OutputStream` to write to.
  `cacheDir` - a `File` indicating where the cache file should be created, or `null` to use the system directory.
Throws:
  `IllegalArgumentException` - if `stream` is `null`.
  `IllegalArgumentException` - if `cacheDir` is non-`null` but is not a directory.
  `IOException` - if a cache file cannot be created.

Method Detail

### read

    public int read()
             throws IOException

  Description copied from interface: `ImageInputStream`
  Reads a single byte from the stream and returns it as an integer between 0 and 255. If the end of the stream is reached, -1 is returned.

  The bit offset within the stream is reset to zero before the read occurs.

  Specified by:
    `read` in interface `ImageInputStream`
  Specified by:
    `read` in class `ImageInputStreamImpl`
  Returns:
    a byte value from the stream, as an int, or -1 to indicate EOF.
  Throws:
    `IOException` - if an I/O error occurs.

### read

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

  Description copied from interface: `ImageInputStream`
  Reads up to `len` bytes from the stream, and stores them into `b` starting at index `off`. The number of bytes read is returned. If no bytes can be read because the end of the stream has been reached, `-1` is returned.

  The bit offset within the stream is reset to zero before the read occurs.

  Specified by:
    `read` in interface `ImageInputStream`
  Specified by:
    `read` in class `ImageInputStreamImpl`
  Parameters:
    `b` - an array of bytes to be written to.
    `off` - the starting position within `b` to write to.
    `len` - the maximum number of `byte`s to read.
  Returns:
    the number of bytes actually read, or `-1` to indicate EOF.
  Throws:
    `IOException` - if an I/O error occurs.

### write

    public void write(int b)
               throws IOException

  Description copied from interface: `ImageOutputStream`
  Writes a single byte to the stream at the current position. The 24 high-order bits of `b` are ignored.

  If the bit offset within the stream is non-zero, the remainder of the current byte is padded with 0s and written out first. The bit offset will be 0 after the write. Implementers can use the ``flushBits`` method of ``ImageOutputStreamImpl`` to guarantee this.

  Specified by:
    `write` in interface `ImageOutputStream`
  Specified by:
    `write` in class `ImageOutputStreamImpl`
  Parameters:
    `b` - an `int` whose lower 8 bits are to be written.
  Throws:
    `IOException` - if an I/O error occurs.

### write

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

  Description copied from interface: `ImageOutputStream`
  Writes a sequence of bytes to the stream at the current position. If `len` is 0, nothing is written. The byte `b[off]` is written first, then the byte `b[off + 1]`, and so on.

  If the bit offset within the stream is non-zero, the remainder of the current byte is padded with 0s and written out first. The bit offset will be 0 after the write. Implementers can use the ``flushBits`` method of ``ImageOutputStreamImpl`` to guarantee this.

  Specified by:
    `write` in interface `ImageOutputStream`
  Specified by:
    `write` in class `ImageOutputStreamImpl`
  Parameters:
    `b` - an array of `byte`s to be written.
    `off` - the start offset in the data.
    `len` - the number of `byte`s to write.
  Throws:
    `IOException` - if an I/O error occurs.

### length

    public long length()

  Description copied from interface: `ImageInputStream`
  Returns the total length of the stream, if known. Otherwise, `-1` is returned.

  Specified by:
    `length` in interface `ImageInputStream`
  Overrides:
    `length` in class `ImageInputStreamImpl`
  Returns:
    a `long` containing the length of the stream, if known, or else `-1`.

### seek

    public void seek(long pos)
              throws IOException

  Sets the current stream position and resets the bit offset to 0. It is legal to seek past the end of the file; an `EOFException` will be thrown only if a read is performed. The file length will not be increased until a write is performed.

  Specified by:
    `seek` in interface `ImageInputStream`
  Overrides:
    `seek` in class `ImageInputStreamImpl`
  Parameters:
    `pos` - a `long` containing the desired file pointer position.
  Throws:
    `IndexOutOfBoundsException` - if `pos` is smaller than the flushed position.
    `IOException` - if any other I/O error occurs.

### isCached

    public boolean isCached()

  Returns `true` since this `ImageOutputStream` caches data in order to allow seeking backwards.

  Specified by:
    `isCached` in interface `ImageInputStream`
  Overrides:
    `isCached` in class `ImageInputStreamImpl`
  Returns:
    `true`.
  See Also:
    `isCachedMemory()`, `isCachedFile()`

### isCachedFile

    public boolean isCachedFile()

  Returns `true` since this `ImageOutputStream` maintains a file cache.

  Specified by:
    `isCachedFile` in interface `ImageInputStream`
  Overrides:
    `isCachedFile` in class `ImageInputStreamImpl`
  Returns:
    `true`.
  See Also:
    `isCached()`, `isCachedMemory()`

### isCachedMemory

    public boolean isCachedMemory()

  Returns `false` since this `ImageOutputStream` does not maintain a main memory cache.

  Specified by:
    `isCachedMemory` in interface `ImageInputStream`
  Overrides:
    `isCachedMemory` in class `ImageInputStreamImpl`
  Returns:
    `false`.
  See Also:
    `isCached()`, `isCachedFile()`

### close

    public void close()
               throws IOException

  Closes this `FileCacheImageOututStream`. All pending data is flushed to the output, and the cache file is closed and removed. The destination `OutputStream` is not closed.

  Specified by:
    `close` in interface `ImageInputStream`
  Overrides:
    `close` in class `ImageInputStreamImpl`
  Throws:
    `IOException` - if an error occurs.

### flushBefore

    public void flushBefore(long pos)
                     throws IOException

  Description copied from interface: `ImageOutputStream`
  Flushes all data prior to the given position to the underlying destination, such as an `OutputStream` or `File`. Attempting to seek to the flushed portion of the stream will result in an `IndexOutOfBoundsException`.

  Specified by:
    `flushBefore` in interface `ImageOutputStream`
  Overrides:
    `flushBefore` in class `ImageInputStreamImpl`
  Parameters:
    `pos` - a `long` containing the length of the file prefix that may be flushed to the destination.
  Throws:
    `IOException` - if an I/O error occurs.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.