com.ibm.as400.access
Class ConvTableWriter

java.lang.Object
  extended by java.io.Writer
      extended by java.io.OutputStreamWriter
          extended by com.ibm.as400.access.ConvTableWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public class ConvTableWriter
extends OutputStreamWriter

A ConvTableWriter represents a Toolbox converter that uses stateful character conversion. That is, it wraps an underlying OutputStream and caches/writes the appropriate number of bytes for the given Unicode characters and CCSID/encoding. This is especially useful when converting Strings and characters to a mixed-byte CCSID, and you don't want to have to keep track of which shift state the conversion stream is in between writes.

See Also:
ConvTableReader

Field Summary
Modifier and Type Field and Description
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
Constructor and Description
ConvTableWriter(OutputStream out)
          Creates a ConvTableWriter that uses the default character encoding.
ConvTableWriter(OutputStream out, int ccsid)
          Creates a ConvTableWriter that uses the specified CCSID.
ConvTableWriter(OutputStream out, int ccsid, BidiConversionProperties properties)
          Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.
ConvTableWriter(OutputStream out, int ccsid, int bidiStringType)
          Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.
ConvTableWriter(OutputStream out, int ccsid, int bidiStringType, int cacheSize)
          Creates a ConvTableWriter that uses the specified CCSID, bi-directional string type, and internal cache size.
ConvTableWriter(OutputStream out, String encoding)
          Creates a ConvTableWriter that uses the specified character encoding.
 
Method Summary
Modifier and Type Method and Description
 void close()
          Closes this ConvTableWriter and its underlying output stream.
 void flush()
          Flushes the underlying output stream.
 int getCcsid()
          Returns the CCSID used by this ConvTableWriter.
 String getEncoding()
          Returns the encoding used by this ConvTableWriter.
 void write(char[] buffer)
          Writes the specified array of characters.
 void write(char[] buffer, int offset, int length)
          Writes a portion of the specified array of characters.
 void write(int c)
          Writes a single character.
 void write(String data)
          Writes the specified String.
 void write(String data, int offset, int length)
          Writes a portion of the specified String.
 
Methods inherited from class java.io.Writer
append, append, append, append, append, append
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConvTableWriter

public ConvTableWriter(OutputStream out)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the default character encoding. The CCSID this writer uses may be set if a known mapping exists for this platform's default character encoding.

Parameters:
out - The OutputStream to which to write characters.
Throws:
UnsupportedEncodingException - If the default character encoding or its associated CCSID is not supported.

ConvTableWriter

public ConvTableWriter(OutputStream out,
                       String encoding)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified character encoding. The CCSID this writer uses may be set if a known mapping exists for the given encoding.

Parameters:
out - The OutputStream to which to write characters.
encoding - The name of a supported character encoding.
Throws:
UnsupportedEncodingException - If the specified character encoding or its associated CCSID is not supported.

ConvTableWriter

public ConvTableWriter(OutputStream out,
                       int ccsid)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified CCSID.

Parameters:
out - The OutputStream to which to write characters.
ccsid - The CCSID.
Throws:
UnsupportedEncodingException - If the specified CCSID or its corresponding character encoding is not supported.

ConvTableWriter

public ConvTableWriter(OutputStream out,
                       int ccsid,
                       int bidiStringType)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.

Parameters:
out - The OutputStream to which to write characters.
ccsid - The CCSID.
bidiStringType - The bi-directional string type.
Throws:
UnsupportedEncodingException - If the specified CCSID or its corresponding character encoding is not supported.

ConvTableWriter

public ConvTableWriter(OutputStream out,
                       int ccsid,
                       BidiConversionProperties properties)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.

Parameters:
out - The OutputStream to which to write characters.
ccsid - The CCSID.
properties - The bidi conversion properties.
Throws:
UnsupportedEncodingException - If the specified CCSID or its corresponding character encoding is not supported.

ConvTableWriter

public ConvTableWriter(OutputStream out,
                       int ccsid,
                       int bidiStringType,
                       int cacheSize)
                throws UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified CCSID, bi-directional string type, and internal cache size.

Parameters:
out - The OutputStream to which to write characters.
ccsid - The CCSID.
bidiStringType - The bi-directional string type.
cacheSize - The number of characters to store in the internal buffer. The default is 1024. This number must be greater than zero.
Throws:
UnsupportedEncodingException - If the specified CCSID or its corresponding character encoding is not supported.
Method Detail

close

public void close()
           throws IOException
Closes this ConvTableWriter and its underlying output stream.

Specified by:
close in interface Closeable
Overrides:
close in class OutputStreamWriter
Throws:
IOException - If an I/O exception occurs.

flush

public void flush()
           throws IOException
Flushes the underlying output stream.

Specified by:
flush in interface Flushable
Overrides:
flush in class OutputStreamWriter
Throws:
IOException - If an I/O exception occurs.

getCcsid

public int getCcsid()
Returns the CCSID used by this ConvTableWriter.

Returns:
The CCSID, or -1 if the CCSID is not known.

getEncoding

public String getEncoding()
Returns the encoding used by this ConvTableWriter. If the CCSID is not known, the superclass encoding is returned. Otherwise, the corresponding encoding for the CCSID is returned, which may be null if no such mapping exists.

Overrides:
getEncoding in class OutputStreamWriter
Returns:
The encoding, or null if the encoding is not known.

write

public void write(int c)
           throws IOException
Writes a single character.

Overrides:
write in class OutputStreamWriter
Parameters:
c - The character to write.
Throws:
IOException - If an I/O exception occurs.

write

public void write(char[] buffer)
           throws IOException
Writes the specified array of characters.

Overrides:
write in class Writer
Parameters:
buffer - The characters to be written.
Throws:
IOException - If an I/O exception occurs.

write

public void write(char[] buffer,
                  int offset,
                  int length)
           throws IOException
Writes a portion of the specified array of characters.

Overrides:
write in class OutputStreamWriter
Parameters:
buffer - The characters to be written.
offset - The offset into the array from which to begin extracting characters to write.
length - The number of characters to write. If zero is specified, this method does nothing.
Throws:
IOException - If an I/O exception occurs.

write

public void write(String data)
           throws IOException
Writes the specified String.

Overrides:
write in class Writer
Parameters:
data - The String to write.
Throws:
IOException - If an I/O exception occurs.

write

public void write(String data,
                  int offset,
                  int length)
           throws IOException
Writes a portion of the specified String.

Overrides:
write in class OutputStreamWriter
Parameters:
data - The String to write.
offset - The offset into the String from which to begin extracting characters to write.
length - The number of characters to write. If zero is specified, this method does nothing.
Throws:
IOException - If an I/O exception occurs.