org.apache.xalan.serialize
Class WriterToUTF8

java.lang.Object
  extended byjava.io.Writer
      extended byorg.apache.xalan.serialize.WriterToUTF8

public class WriterToUTF8
extends Writer

This class writes ASCII to a byte stream as quickly as possible. For the moment it does not do buffering, though I reserve the right to do some buffering down the line if I can prove that it will be faster even if the output stream is buffered.


Field Summary
private  OutputStream m_os
          The byte stream to write to.
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
WriterToUTF8(OutputStream os)
          Create an unbuffered UTF-8 writer.
 
Method Summary
 void close()
          Close the stream, flushing it first.
 void flush()
          Flush the stream.
 OutputStream getOutputStream()
          Get the output stream where the events will be serialized to.
 void write(char[] chars, int start, int length)
          Write a portion of an array of characters.
 void write(int c)
          Write a single character.
 void write(String s)
          Write a string.
 
Methods inherited from class java.io.Writer
write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_os

private final OutputStream m_os
The byte stream to write to.

Constructor Detail

WriterToUTF8

public WriterToUTF8(OutputStream os)
             throws UnsupportedEncodingException
Create an unbuffered UTF-8 writer.

Parameters:
os - The byte stream to write to.
Throws:
UnsupportedEncodingException
Method Detail

write

public void write(int c)
           throws IOException
Write 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.

Overrides:
write in class Writer
Parameters:
c - int specifying a character to be written.
Throws:
IOException - If an I/O error occurs

write

public void write(char[] chars,
                  int start,
                  int length)
           throws IOException
Write a portion of an array of characters.

Specified by:
write in class Writer
Parameters:
chars - Array of characters
start - Offset from which to start writing characters
length - Number of characters to write
Throws:
IOException - If an I/O error occurs
IOException

write

public void write(String s)
           throws IOException
Write a string.

Overrides:
write in class Writer
Parameters:
s - String to be written
Throws:
IOException - If an I/O error occurs

flush

public void flush()
           throws IOException
Flush 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.

Specified by:
flush in class Writer
Throws:
IOException - If an I/O error occurs
IOException

close

public void close()
           throws IOException
Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.

Specified by:
close in class Writer
Throws:
IOException - If an I/O error occurs
IOException

getOutputStream

public OutputStream getOutputStream()
Get the output stream where the events will be serialized to.

Returns:
reference to the result stream, or null of only a writer was set.