javolution.io
Class UTF8ByteBufferWriter

Object
  extended by Writer
      extended by UTF8ByteBufferWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable, Reusable

public final class UTF8ByteBufferWriter
extends Writer
implements Reusable

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

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

Instances of this class can be reused for different output streams and can be part of a higher level component (e.g. serializer) in order to avoid dynamic buffer allocation when the destination output changes. Also wrapping using a java.io.BufferedWriter is unnescessary as instances of this class embed their own data buffers.

Note: This writer is unsynchronized and always produces well-formed UTF-8 sequences.

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

Field Summary
 
Fields inherited from class Writer
lock
 
Constructor Summary
UTF8ByteBufferWriter()
          Default constructor.
 
Method Summary
 void close()
          Closes and resets this writer for reuse.
 void flush()
          Flushes the stream (this method has no effect, the data is always directly written to the ByteBuffer).
 void reset()
          Resets the internal state of this object to its default values.
 UTF8ByteBufferWriter setByteBuffer(ByteBuffer byteBuffer)
          Deprecated. Replaced by setOutput(ByteBuffer)
 UTF8ByteBufferWriter setOutput(ByteBuffer byteBuffer)
          Sets the byte buffer to use for writing until this writer is closed.
 void write(char c)
          Writes a single character.
 void write(char[] cbuf, int off, int len)
          Writes a portion of an array of characters.
 void write(CharSequence csq)
          Writes the specified character sequence.
 void write(int code)
          Writes a character given its 31-bits Unicode.
 void write(String str, int off, int len)
          Writes a portion of a string.
 
Methods inherited from class Writer
append, append, append, write, write
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UTF8ByteBufferWriter

public UTF8ByteBufferWriter()
Default constructor.

Method Detail

setOutput

public UTF8ByteBufferWriter setOutput(ByteBuffer byteBuffer)
Sets the byte buffer to use for writing until this writer is closed.

Parameters:
byteBuffer - the destination byte buffer.
Returns:
this UTF-8 writer.
Throws:
IllegalStateException - if this writer is being reused and it has not been closed or reset.

write

public void write(char c)
           throws IOException
Writes a single character. This method supports 16-bits character surrogates.

Parameters:
c - char the character to be written (possibly a surrogate).
Throws:
IOException - if an I/O error occurs.

write

public void write(int code)
           throws IOException
Writes a character given its 31-bits Unicode.

Overrides:
write in class Writer
Parameters:
code - the 31 bits Unicode of the character to be written.
Throws:
IOException - if an I/O error occurs.

write

public void write(char[] cbuf,
                  int off,
                  int len)
           throws IOException
Writes a portion of an array of characters.

Specified by:
write in class Writer
Parameters:
cbuf - the array of characters.
off - the offset from which to start writing characters.
len - the number of characters to write.
Throws:
IOException - if an I/O error occurs.

write

public void write(String str,
                  int off,
                  int len)
           throws IOException
Writes a portion of a string.

Overrides:
write in class Writer
Parameters:
str - a String.
off - the offset from which to start writing characters.
len - the number of characters to write.
Throws:
IOException - if an I/O error occurs

write

public void write(CharSequence csq)
           throws IOException
Writes the specified character sequence.

Parameters:
csq - the character sequence.
Throws:
IOException - if an I/O error occurs

flush

public void flush()
           throws IOException
Flushes the stream (this method has no effect, the data is always directly written to the ByteBuffer).

Specified by:
flush in interface Flushable
Specified by:
flush in class Writer
Throws:
IOException - if an I/O error occurs.

close

public void close()
           throws IOException
Closes and resets this writer for reuse.

Specified by:
close in interface Closeable
Specified by:
close in class Writer
Throws:
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

setByteBuffer

public UTF8ByteBufferWriter setByteBuffer(ByteBuffer byteBuffer)
Deprecated. Replaced by setOutput(ByteBuffer)



Copyright © 2005-2012 Javolution. All Rights Reserved.