com.sun.media.imageio.stream
Class FileChannelImageOutputStream

java.lang.Object
  extended byjavax.imageio.stream.ImageInputStreamImpl
      extended byjavax.imageio.stream.ImageOutputStreamImpl
          extended bycom.sun.media.imageio.stream.FileChannelImageOutputStream
All Implemented Interfaces:
DataInput, DataOutput, ImageInputStream, ImageOutputStream

public class FileChannelImageOutputStream
extends ImageOutputStreamImpl

A class which implements ImageOutputStream using a FileChannel as the eventual data destination.

Memory mapping is used for reading and direct buffers for writing. Only methods which provide significant performance improvement with respect to the superclass implementation are overridden. Overridden methods are not commented individually unless some noteworthy aspect of the implementation must be described.

The methods of this class are not synchronized.

See Also:
ImageOutputStream, java.nio, FileChannel

Field Summary
 
Fields inherited from class javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos
 
Constructor Summary
FileChannelImageOutputStream(FileChannel channel)
          Constructs a FileChannelImageOutputStream from a FileChannel.
 
Method Summary
 void close()
          Invokes the superclass method, writes any unwritten data, and sets the internal reference to the source FileChannel to null.
 long length()
          Returns the number of bytes currently in the FileChannel.
 int read()
           
 int read(byte[] b, int off, int len)
           
 void readFully(char[] c, int off, int len)
           
 void readFully(double[] d, int off, int len)
           
 void readFully(float[] f, int off, int len)
           
 void readFully(int[] i, int off, int len)
           
 void readFully(long[] l, int off, int len)
           
 void readFully(short[] s, int off, int len)
           
 void seek(long pos)
          Invokes the superclass method, writes any unwritten data, and sets the channel position to the supplied parameter.
 void setByteOrder(ByteOrder networkByteOrder)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 void writeChars(char[] c, int off, int len)
           
 void writeDoubles(double[] d, int off, int len)
           
 void writeFloats(float[] f, int off, int len)
           
 void writeInts(int[] i, int off, int len)
           
 void writeLongs(long[] l, int off, int len)
           
 void writeShorts(short[] s, int off, int len)
           
 
Methods inherited from class javax.imageio.stream.ImageOutputStreamImpl
flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTF
 
Methods inherited from class javax.imageio.stream.ImageInputStreamImpl
checkClosed, finalize, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, 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, getStreamPosition, isCached, isCachedFile, isCachedMemory, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, skipBytes, skipBytes
 

Constructor Detail

FileChannelImageOutputStream

public FileChannelImageOutputStream(FileChannel channel)
                             throws IOException
Constructs a FileChannelImageOutputStream from a FileChannel. The initial position of the stream stream is taken to be the position of the FileChannel parameter when this constructor is invoked. The stream and flushed positions are therefore both initialized to channel.position().

Parameters:
channel - the destination FileChannel.
Throws:
IllegalArgumentException - if channel is null or is not open.
IOException - if a method invoked on channel throws an IOException.
Method Detail

read

public int read()
         throws IOException
Throws:
IOException

read

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

write

public void write(int b)
           throws IOException
Throws:
IOException

write

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

readFully

public void readFully(char[] c,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

readFully

public void readFully(short[] s,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

readFully

public void readFully(int[] i,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

readFully

public void readFully(long[] l,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

readFully

public void readFully(float[] f,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

readFully

public void readFully(double[] d,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

writeChars

public void writeChars(char[] c,
                       int off,
                       int len)
                throws IOException
Throws:
IOException

writeShorts

public void writeShorts(short[] s,
                        int off,
                        int len)
                 throws IOException
Throws:
IOException

writeInts

public void writeInts(int[] i,
                      int off,
                      int len)
               throws IOException
Throws:
IOException

writeLongs

public void writeLongs(long[] l,
                       int off,
                       int len)
                throws IOException
Throws:
IOException

writeFloats

public void writeFloats(float[] f,
                        int off,
                        int len)
                 throws IOException
Throws:
IOException

writeDoubles

public void writeDoubles(double[] d,
                         int off,
                         int len)
                  throws IOException
Throws:
IOException

close

public void close()
           throws IOException
Invokes the superclass method, writes any unwritten data, and sets the internal reference to the source FileChannel to null. The source FileChannel is not closed.

Throws:
IOException - if an error occurs.

length

public long length()
Returns the number of bytes currently in the FileChannel. If an IOException is encountered when querying the channel's size, -1L will be returned.

Returns:
The number of bytes in the channel -1L to indicate unknown length.

seek

public void seek(long pos)
          throws IOException
Invokes the superclass method, writes any unwritten data, and sets the channel position to the supplied parameter.

Throws:
IOException

setByteOrder

public void setByteOrder(ByteOrder networkByteOrder)