com.ibm.as400.access
Class ConvTableWriter
- java.lang.Object
-
- java.io.Writer
-
- java.io.OutputStreamWriter
-
- com.ibm.as400.access.ConvTableWriter
-
- All Implemented Interfaces:
- java.io.Closeable, java.io.Flushable, java.lang.Appendable
public class ConvTableWriter extends java.io.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
-
-
Constructor Summary
Constructors Constructor and Description ConvTableWriter(java.io.OutputStream out)
Creates a ConvTableWriter that uses the default character encoding.ConvTableWriter(java.io.OutputStream out, int ccsid)
Creates a ConvTableWriter that uses the specified CCSID.ConvTableWriter(java.io.OutputStream out, int ccsid, BidiConversionProperties properties)
Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.ConvTableWriter(java.io.OutputStream out, int ccsid, int bidiStringType)
Creates a ConvTableWriter that uses the specified CCSID and bi-directional string type.ConvTableWriter(java.io.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(java.io.OutputStream out, java.lang.String encoding)
Creates a ConvTableWriter that uses the specified character encoding.
-
Method Summary
Methods 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.java.lang.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(java.lang.String data)
Writes the specified String.void
write(java.lang.String data, int offset, int length)
Writes a portion of the specified String.
-
-
-
Constructor Detail
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out) throws java.io.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:
java.io.UnsupportedEncodingException
- If the default character encoding or its associated CCSID is not supported.
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out, java.lang.String encoding) throws java.io.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:
java.io.UnsupportedEncodingException
- If the specified character encoding or its associated CCSID is not supported.
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out, int ccsid) throws java.io.UnsupportedEncodingException
Creates a ConvTableWriter that uses the specified CCSID.- Parameters:
out
- The OutputStream to which to write characters.ccsid
- The CCSID.- Throws:
java.io.UnsupportedEncodingException
- If the specified CCSID or its corresponding character encoding is not supported.
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out, int ccsid, int bidiStringType) throws java.io.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
- Thebi-directional string type
.- Throws:
java.io.UnsupportedEncodingException
- If the specified CCSID or its corresponding character encoding is not supported.
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out, int ccsid, BidiConversionProperties properties) throws java.io.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:
java.io.UnsupportedEncodingException
- If the specified CCSID or its corresponding character encoding is not supported.
-
ConvTableWriter
public ConvTableWriter(java.io.OutputStream out, int ccsid, int bidiStringType, int cacheSize) throws java.io.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
- Thebi-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:
java.io.UnsupportedEncodingException
- If the specified CCSID or its corresponding character encoding is not supported.
-
-
Method Detail
-
close
public void close() throws java.io.IOException
Closes this ConvTableWriter and its underlying output stream.- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStreamWriter
- Throws:
java.io.IOException
- If an I/O exception occurs.
-
flush
public void flush() throws java.io.IOException
Flushes the underlying output stream.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStreamWriter
- Throws:
java.io.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 java.lang.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 classjava.io.OutputStreamWriter
- Returns:
- The encoding, or null if the encoding is not known.
-
write
public void write(int c) throws java.io.IOException
Writes a single character.- Overrides:
write
in classjava.io.OutputStreamWriter
- Parameters:
c
- The character to write.- Throws:
java.io.IOException
- If an I/O exception occurs.
-
write
public void write(char[] buffer) throws java.io.IOException
Writes the specified array of characters.- Overrides:
write
in classjava.io.Writer
- Parameters:
buffer
- The characters to be written.- Throws:
java.io.IOException
- If an I/O exception occurs.
-
write
public void write(char[] buffer, int offset, int length) throws java.io.IOException
Writes a portion of the specified array of characters.- Overrides:
write
in classjava.io.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:
java.io.IOException
- If an I/O exception occurs.
-
write
public void write(java.lang.String data) throws java.io.IOException
Writes the specified String.- Overrides:
write
in classjava.io.Writer
- Parameters:
data
- The String to write.- Throws:
java.io.IOException
- If an I/O exception occurs.
-
write
public void write(java.lang.String data, int offset, int length) throws java.io.IOException
Writes a portion of the specified String.- Overrides:
write
in classjava.io.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:
java.io.IOException
- If an I/O exception occurs.
-
-