org.codehaus.plexus.util

## Class WriterFactory

- java.lang.Object
- - org.codehaus.plexus.util.WriterFactory

-     public class WriterFactory
      extends java.lang.Object

  Utility to create Writers, with explicit encoding choice: platform default, XML, or specified.
  Since:
    1.4.4
  Version:
    $Id: WriterFactory.java 8010 2009-01-07 12:59:50Z vsiveton $
  Author:
    Herve Boutemy
  See Also:
    `Charset`, Supported encodings

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `FILE_ENCODING` The `file.encoding` System Property.
    `static java.lang.String` | `ISO_8859_1` ISO Latin Alphabet #1, also known as ISO-LATIN-1.
    `static java.lang.String` | `US_ASCII` Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.
    `static java.lang.String` | `UTF_16` Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order accepted on input, big-endian used on output).
    `static java.lang.String` | `UTF_16BE` Sixteen-bit Unicode Transformation Format, big-endian byte order.
    `static java.lang.String` | `UTF_16LE` Sixteen-bit Unicode Transformation Format, little-endian byte order.
    `static java.lang.String` | `UTF_8` Eight-bit Unicode Transformation Format.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WriterFactory()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.io.Writer` | `newPlatformWriter(java.io.File file)` Create a new Writer with default plaform encoding.
    `static java.io.Writer` | `newPlatformWriter(java.io.OutputStream out)` Create a new Writer with default plaform encoding.
    `static java.io.Writer` | `newWriter(java.io.File file, java.lang.String encoding)` Create a new Writer with specified encoding.
    `static java.io.Writer` | `newWriter(java.io.OutputStream out, java.lang.String encoding)` Create a new Writer with specified encoding.
    `static XmlStreamWriter` | `newXmlWriter(java.io.File file)` Create a new Writer with XML encoding detection rules.
    `static XmlStreamWriter` | `newXmlWriter(java.io.OutputStream out)` Create a new Writer with XML encoding detection rules.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ISO_8859_1

          public static final java.lang.String ISO_8859_1

      ISO Latin Alphabet #1, also known as ISO-LATIN-1. Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### US_ASCII

          public static final java.lang.String US_ASCII

      Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set. Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### UTF_16

          public static final java.lang.String UTF_16

      Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order accepted on input, big-endian used on output). Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### UTF_16BE

          public static final java.lang.String UTF_16BE

      Sixteen-bit Unicode Transformation Format, big-endian byte order. Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### UTF_16LE

          public static final java.lang.String UTF_16LE

      Sixteen-bit Unicode Transformation Format, little-endian byte order. Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### UTF_8

          public static final java.lang.String UTF_8

      Eight-bit Unicode Transformation Format. Every implementation of the Java platform is required to support this character encoding.
      See Also:
        `Charset`, Constant Field Values

    - #### FILE_ENCODING

          public static final java.lang.String FILE_ENCODING

      The `file.encoding` System Property.

  - ### Constructor Detail

    - #### WriterFactory

          public WriterFactory()

  - ### Method Detail

    - #### newXmlWriter

          public static XmlStreamWriter newXmlWriter(java.io.OutputStream out)
                                              throws java.io.IOException

      Create a new Writer with XML encoding detection rules.
      Parameters:
        `out` - not null output stream.
      Returns:
        an XML writer instance for the output stream.
      Throws:
        `java.io.IOException` - if any.
      See Also:
        `XmlStreamWriter`

    - #### newXmlWriter

          public static XmlStreamWriter newXmlWriter(java.io.File file)
                                              throws java.io.IOException

      Create a new Writer with XML encoding detection rules.
      Parameters:
        `file` - not null file.
      Returns:
        an XML writer instance for the output file.
      Throws:
        `java.io.IOException` - if any.
      See Also:
        `XmlStreamWriter`

    - #### newPlatformWriter

          public static java.io.Writer newPlatformWriter(java.io.OutputStream out)

      Create a new Writer with default plaform encoding.
      Parameters:
        `out` - not null output stream.
      Returns:
        a writer instance for the output stream using the default platform charset.
      Throws:
        `java.io.IOException` - if any.
      See Also:
        `Charset.defaultCharset()`

    - #### newPlatformWriter

          public static java.io.Writer newPlatformWriter(java.io.File file)
                                                  throws java.io.IOException

      Create a new Writer with default plaform encoding.
      Parameters:
        `file` - not null file.
      Returns:
        a writer instance for the output file using the default platform charset.
      Throws:
        `java.io.IOException` - if any.
      See Also:
        `Charset.defaultCharset()`

    - #### newWriter

          public static java.io.Writer newWriter(java.io.OutputStream out,
                                                 java.lang.String encoding)
                                          throws java.io.UnsupportedEncodingException

      Create a new Writer with specified encoding.
      Parameters:
        `out` - not null output stream.
        `encoding` - not null supported encoding.
      Returns:
        a writer instance for the output stream using the given encoding.
      Throws:
        `java.io.UnsupportedEncodingException` - if any.
      See Also:
        Supported encodings

    - #### newWriter

          public static java.io.Writer newWriter(java.io.File file,
                                                 java.lang.String encoding)
                                          throws java.io.UnsupportedEncodingException,
                                                 java.io.FileNotFoundException

      Create a new Writer with specified encoding.
      Parameters:
        `file` - not null file.
        `encoding` - not null supported encoding.
      Returns:
        a writer instance for the output file using the given encoding.
      Throws:
        `java.io.UnsupportedEncodingException` - if any.
        `java.io.FileNotFoundException` - if any.
      See Also:
        Supported encodings