Top Description Fields Constructors Methods
com.ctc.wstx.io

public final Class UTF8Writer

extends Writer
implements CompletelyCloseable
Class Inheritance
All Implemented Interfaces
com.ctc.wstx.io.CompletelyCloseable
Imports
java.io.*, com.ctc.wstx.api.WriterConfig

Specialized buffering UTF-8 writer used by com.ctc.wstx.sw.XmlWriter. 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).

Field Summary

Modifier and TypeField and Description
private static final int
pack-priv final boolean
pack-priv final WriterConfig
pack-priv final OutputStream
pack-priv byte[]
pack-priv final int
pack-priv int
pack-priv int
mSurrogate

When outputting chars from BMP, surrogate pairs need to be coalesced.

pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
Inherited from java.io.Writer:
lock

Constructor Summary

AccessConstructor and Description
public
UTF8Writer(WriterConfig cfg, OutputStream out, boolean autoclose)

Method Summary

Modifier and TypeMethod and Description
private final void
_close(boolean forceClosing)

private final int
_convertSurrogate(int secondPart)

Method called to calculate UTF codepoint, from a surrogate pair.

public void
close()

Implements abstract java.io.Writer.close.

Implements java.io.Closeable.close.

Closes the stream, flushing it first.

public void
public void
flush()

Implements abstract java.io.Writer.flush.

Implements java.io.Flushable.flush.

Flushes the stream.

private void
throwIllegal(int code)

public void
write(char[]
Array of characters to be written
cbuf
)

Overrides java.io.Writer.write.

Writes an array of characters.

public void
write(char[]
Array of characters
cbuf
,
int
Offset from which to start writing characters
off
,
int
Number of characters to write
len
)

Implements abstract java.io.Writer.write.

Writes a portion of an array of characters.

public void
write(int
int specifying a character to be written
c
)

Overrides java.io.Writer.write.

Writes a single character.

public void
write(String
String to be written
str
)

Overrides java.io.Writer.write.

Writes a string.

public void
write(String
A String
str
,
int
Offset from which to start writing characters
off
,
int
Number of characters to write
len
)

Overrides java.io.Writer.write.

Writes a portion of a string.

Inherited from java.io.Writer:
appendappendappendnullWriter

Field Detail

DEFAULT_BUF_LENback to summary
private static final int DEFAULT_BUF_LEN
mAutoCloseOutputback to summary
pack-priv final boolean mAutoCloseOutput
mConfigback to summary
pack-priv final WriterConfig mConfig
mOutback to summary
pack-priv final OutputStream mOut
mOutBufferback to summary
pack-priv byte[] mOutBuffer
mOutBufferLastback to summary
pack-priv final int mOutBufferLast
mOutPtrback to summary
pack-priv int mOutPtr
mSurrogateback to summary
pack-priv int mSurrogate

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

SURR1_FIRSTback to summary
pack-priv static final int SURR1_FIRST
SURR1_LASTback to summary
pack-priv static final int SURR1_LAST
SURR2_FIRSTback to summary
pack-priv static final int SURR2_FIRST
SURR2_LASTback to summary
pack-priv static final int SURR2_LAST

Constructor Detail

UTF8Writerback to summary
public UTF8Writer(WriterConfig cfg, OutputStream out, boolean autoclose)

Method Detail

_closeback to summary
private final void _close(boolean forceClosing) throws IOException
_convertSurrogateback to summary
private final int _convertSurrogate(int secondPart) throws IOException

Method called to calculate UTF codepoint, from a surrogate pair.

closeback to summary
public void close() throws IOException

Implements abstract java.io.Writer.close.

Implements java.io.Closeable.close.

Doc from java.io.Writer.close.

Closes the stream, flushing it first. Once the stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously closed stream has no effect.

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
closeCompletelyback to summary
public void closeCompletely() throws IOException

Implements com.ctc.wstx.io.CompletelyCloseable.closeCompletely.

Annotations
@Override
flushback to summary
public void flush() throws IOException

Implements abstract java.io.Writer.flush.

Implements java.io.Flushable.flush.

Doc from java.io.Writer.flush.

Flushes the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.

If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
throwIllegalback to summary
private void throwIllegal(int code) throws IOException
writeback to summary
public void write(char[] cbuf) throws IOException

Overrides java.io.Writer.write.

Doc from java.io.Writer.write.

Writes an array of characters.

Parameters
cbuf:char[]

Array of characters to be written

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
writeback to summary
public void write(char[] cbuf, int off, int len) throws IOException

Implements abstract java.io.Writer.write.

Doc from java.io.Writer.write.

Writes a portion of an array of characters.

Parameters
cbuf:char[]

Array of characters

off:int

Offset from which to start writing characters

len:int

Number of characters to write

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
writeback to summary
public void write(int c) throws IOException

Overrides java.io.Writer.write.

Doc from java.io.Writer.write.

Writes a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.

Subclasses that intend to support efficient single-character output should override this method.

Parameters
c:int

int specifying a character to be written

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
writeback to summary
public void write(String str) throws IOException

Overrides java.io.Writer.write.

Doc from java.io.Writer.write.

Writes a string.

Parameters
str:String

String to be written

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs
writeback to summary
public void write(String str, int off, int len) throws IOException

Overrides java.io.Writer.write.

Doc from java.io.Writer.write.

Writes a portion of a string.

Parameters
str:String

A String

off:int

Offset from which to start writing characters

len:int

Number of characters to write

Annotations
@Override
Exceptions
IOException:
If an I/O error occurs