Class XmlStreamWriter

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable

    public class XmlStreamWriter
    extends java.io.Writer
    Character stream that handles all the necessary Voodoo to figure out the charset encoding of the XML document written to the stream.
    Since:
    2.0
    See Also:
    XmlStreamReader
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int BUFFER_SIZE  
      private java.lang.String defaultEncoding  
      private java.lang.String encoding  
      (package private) static java.util.regex.Pattern ENCODING_PATTERN  
      private java.io.OutputStream out  
      private java.io.Writer writer  
      private java.io.StringWriter xmlPrologWriter  
      • Fields inherited from class java.io.Writer

        lock
    • Constructor Summary

      Constructors 
      Constructor Description
      XmlStreamWriter​(java.io.File file)
      Constructs a new XML stream writer for the specified file with a default encoding of UTF-8.
      XmlStreamWriter​(java.io.File file, java.lang.String defaultEncoding)
      Constructs a new XML stream writer for the specified file with the specified default encoding.
      XmlStreamWriter​(java.io.OutputStream out)
      Constructs a new XML stream writer for the specified output stream with a default encoding of UTF-8.
      XmlStreamWriter​(java.io.OutputStream out, java.lang.String defaultEncoding)
      Constructs a new XML stream writer for the specified output stream with the specified default encoding.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes the underlying writer.
      private void detectEncoding​(char[] cbuf, int off, int len)
      Detects the encoding.
      void flush()
      Flushes the underlying writer.
      java.lang.String getDefaultEncoding()
      Returns the default encoding.
      java.lang.String getEncoding()
      Returns the detected encoding.
      void write​(char[] cbuf, int off, int len)
      Writes the characters to the underlying writer, detecting encoding.
      • Methods inherited from class java.io.Writer

        append, append, append, nullWriter, write, write, write, write
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • out

        private final java.io.OutputStream out
      • defaultEncoding

        private final java.lang.String defaultEncoding
      • xmlPrologWriter

        private java.io.StringWriter xmlPrologWriter
      • writer

        private java.io.Writer writer
      • encoding

        private java.lang.String encoding
      • ENCODING_PATTERN

        static final java.util.regex.Pattern ENCODING_PATTERN
    • Constructor Detail

      • XmlStreamWriter

        public XmlStreamWriter​(java.io.OutputStream out)
        Constructs a new XML stream writer for the specified output stream with a default encoding of UTF-8.
        Parameters:
        out - The output stream
      • XmlStreamWriter

        public XmlStreamWriter​(java.io.OutputStream out,
                               java.lang.String defaultEncoding)
        Constructs a new XML stream writer for the specified output stream with the specified default encoding.
        Parameters:
        out - The output stream
        defaultEncoding - The default encoding if not encoding could be detected
      • XmlStreamWriter

        public XmlStreamWriter​(java.io.File file)
                        throws java.io.FileNotFoundException
        Constructs a new XML stream writer for the specified file with a default encoding of UTF-8.
        Parameters:
        file - The file to write to
        Throws:
        java.io.FileNotFoundException - if there is an error creating or opening the file
      • XmlStreamWriter

        public XmlStreamWriter​(java.io.File file,
                               java.lang.String defaultEncoding)
                        throws java.io.FileNotFoundException
        Constructs a new XML stream writer for the specified file with the specified default encoding.
        Parameters:
        file - The file to write to
        defaultEncoding - The default encoding if not encoding could be detected
        Throws:
        java.io.FileNotFoundException - if there is an error creating or opening the file
    • Method Detail

      • getEncoding

        public java.lang.String getEncoding()
        Returns the detected encoding.
        Returns:
        the detected encoding
      • getDefaultEncoding

        public java.lang.String getDefaultEncoding()
        Returns the default encoding.
        Returns:
        the default encoding
      • close

        public void close()
                   throws java.io.IOException
        Closes the underlying writer.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class java.io.Writer
        Throws:
        java.io.IOException - if an error occurs closing the underlying writer
      • flush

        public void flush()
                   throws java.io.IOException
        Flushes the underlying writer.
        Specified by:
        flush in interface java.io.Flushable
        Specified by:
        flush in class java.io.Writer
        Throws:
        java.io.IOException - if an error occurs flushing the underlying writer
      • detectEncoding

        private void detectEncoding​(char[] cbuf,
                                    int off,
                                    int len)
                             throws java.io.IOException
        Detects the encoding.
        Parameters:
        cbuf - the buffer to write the characters from
        off - The start offset
        len - The number of characters to write
        Throws:
        java.io.IOException - if an error occurs detecting the encoding
      • write

        public void write​(char[] cbuf,
                          int off,
                          int len)
                   throws java.io.IOException
        Writes the characters to the underlying writer, detecting encoding.
        Specified by:
        write in class java.io.Writer
        Parameters:
        cbuf - the buffer to write the characters from
        off - The start offset
        len - The number of characters to write
        Throws:
        java.io.IOException - if an error occurs detecting the encoding