J avolution v5.5 (J2SE 1.6+)

javolution.io
Class UTF8ByteBufferReader

java.lang.Object
  extended by java.io.Reader
      extended by javolution.io.UTF8ByteBufferReader
All Implemented Interfaces:
java.io.Closeable, java.lang.Readable, Reusable

public final class UTF8ByteBufferReader
extends java.io.Reader
implements Reusable

This class represents a UTF-8 j2me.nio.ByteBuffer reader.

This reader can be used for efficient decoding of native byte buffers (e.g. MappedByteBuffer), high-performance messaging (no intermediate buffer), etc.

This reader supports surrogate char pairs (representing characters in the range [U+10000 .. U+10FFFF]). It can also be used to read characters unicodes (31 bits) directly (ref. read()).

Each invocation of one of the read() methods may cause one or more bytes to be read from the underlying byte buffer. The end of stream is reached when the byte buffer position and limit coincide.

Version:
2.0, December 9, 2004
Author:
Jean-Marie Dautelle
See Also:
UTF8ByteBufferWriter

Field Summary
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
UTF8ByteBufferReader()
          Default constructor.
 
Method Summary
 void close()
          Closes and resets this reader for reuse.
 int read()
          Reads a single character.
 void read(java.lang.Appendable dest)
          Reads characters into the specified appendable.
 int read(char[] cbuf, int off, int len)
          Reads characters into a portion of an array.
 boolean ready()
          Indicates if this stream is ready to be read.
 void reset()
          Resets the internal state of this object to its default values.
 UTF8ByteBufferReader setByteBuffer(java.nio.ByteBuffer byteBuffer)
          Deprecated. Replaced by setInput(ByteBuffer)
 UTF8ByteBufferReader setInput(java.nio.ByteBuffer byteBuffer)
          Sets the ByteBuffer to use for reading available bytes from current buffer position.
 
Methods inherited from class java.io.Reader
mark, markSupported, read, read, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UTF8ByteBufferReader

public UTF8ByteBufferReader()
Default constructor.

Method Detail

setInput

public UTF8ByteBufferReader setInput(java.nio.ByteBuffer byteBuffer)
Sets the ByteBuffer to use for reading available bytes from current buffer position.

Parameters:
byteBuffer - the ByteBuffer source.
Returns:
this UTF-8 reader.
Throws:
java.lang.IllegalStateException - if this reader is being reused and it has not been closed or reset.

ready

public boolean ready()
              throws java.io.IOException
Indicates if this stream is ready to be read.

Overrides:
ready in class java.io.Reader
Returns:
true if the byte buffer has remaining bytes to read; false otherwise.
Throws:
java.io.IOException - if an I/O error occurs.

close

public void close()
           throws java.io.IOException
Closes and resets this reader for reuse.

Specified by:
close in interface java.io.Closeable
Specified by:
close in class java.io.Reader
Throws:
java.io.IOException - if an I/O error occurs.

read

public int read()
         throws java.io.IOException
Reads a single character. This method does not block, -1 is returned if the buffer's limit has been reached.

Overrides:
read in class java.io.Reader
Returns:
the 31-bits Unicode of the character read, or -1 if there is no more remaining bytes to be read.
Throws:
java.io.IOException - if an I/O error occurs (e.g. incomplete character sequence being read).

read

public int read(char[] cbuf,
                int off,
                int len)
         throws java.io.IOException
Reads characters into a portion of an array. This method does not block.

Note: Characters between U+10000 and U+10FFFF are represented by surrogate pairs (two char).

Specified by:
read in class java.io.Reader
Parameters:
cbuf - the destination buffer.
off - the offset at which to start storing characters.
len - the maximum number of characters to read
Returns:
the number of characters read, or -1 if there is no more byte remaining.
Throws:
java.io.IOException - if an I/O error occurs.

read

public void read(java.lang.Appendable dest)
          throws java.io.IOException
Reads characters into the specified appendable. This method does not block.

Note: Characters between U+10000 and U+10FFFF are represented by surrogate pairs (two char).

Parameters:
dest - the destination buffer.
Throws:
java.io.IOException - if an I/O error occurs.

reset

public void reset()
Description copied from interface: Reusable
Resets the internal state of this object to its default values.

Specified by:
reset in interface Reusable
Overrides:
reset in class java.io.Reader

setByteBuffer

public UTF8ByteBufferReader setByteBuffer(java.nio.ByteBuffer byteBuffer)
Deprecated. Replaced by setInput(ByteBuffer)


J avolution v5.5 (J2SE 1.6+)

Copyright © 2005 - 2009 Javolution.