com.ibm.as400.access

Class 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
    • 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,
                       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

      • 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(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.