net.sf.saxon.event
Class UTF8Writer

java.lang.Object
  extended by java.io.Writer
      extended by net.sf.saxon.event.UTF8Writer
All Implemented Interfaces:
Closeable, Flushable, Appendable

public final class UTF8Writer
extends Writer

Specialized buffering UTF-8 writer. The main reason for custom version is to allow for efficient buffer recycling; the second benefit is that encoder has less overhead for short content encoding (compared to JDK default codecs).

Author:
Tatu Saloranta

Field Summary
protected  OutputStream _out
           
protected  byte[] _outBuffer
           
protected  int _outBufferLast
           
protected  int _outPtr
           
(package private)  int _surrogate
          When outputting chars from BMP, surrogate pairs need to be coalesced.
(package private) static int SURR1_FIRST
           
(package private) static int SURR1_LAST
           
(package private) static int SURR2_FIRST
           
(package private) static int SURR2_LAST
           
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
UTF8Writer(OutputStream out)
           
UTF8Writer(OutputStream out, int bufferLength)
           
 
Method Summary
 void close()
           
 void flush()
           
 void write(char[] cbuf)
           
 void write(char[] cbuf, int off, int len)
           
 void write(int c)
           
 void write(String str)
           
 void write(String str, int off, int len)
           
 
Methods inherited from class java.io.Writer
append, append, append
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SURR1_FIRST

static final int SURR1_FIRST
See Also:
Constant Field Values

SURR1_LAST

static final int SURR1_LAST
See Also:
Constant Field Values

SURR2_FIRST

static final int SURR2_FIRST
See Also:
Constant Field Values

SURR2_LAST

static final int SURR2_LAST
See Also:
Constant Field Values

_out

protected OutputStream _out

_outBuffer

protected byte[] _outBuffer

_outBufferLast

protected final int _outBufferLast

_outPtr

protected int _outPtr

_surrogate

int _surrogate
When outputting chars from BMP, surrogate pairs need to be coalesced. To do this, both pairs must be known first; and since it is possible pairs may be split, we need temporary storage for the first half

Constructor Detail

UTF8Writer

public UTF8Writer(OutputStream out)

UTF8Writer

public UTF8Writer(OutputStream out,
                  int bufferLength)
Method Detail

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close in class Writer
Throws:
IOException

flush

public void flush()
           throws IOException
Specified by:
flush in interface Flushable
Specified by:
flush in class Writer
Throws:
IOException

write

public void write(char[] cbuf)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(char[] cbuf,
                  int off,
                  int len)
           throws IOException
Specified by:
write in class Writer
Throws:
IOException

write

public void write(int c)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(String str)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(String str,
                  int off,
                  int len)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException