FileWriterWithEncoding (Commons IO 2.5)
Date: 2016-12-01

org.apache.commons.io.output

## Class FileWriterWithEncoding

- java.lang.Object
- - java.io.Writer
  - - org.apache.commons.io.output.FileWriterWithEncoding

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

      public class FileWriterWithEncoding
      extends java.io.Writer

  Writer of files that allows the encoding to be set.

  This class provides a simple alternative to `FileWriter` that allows an encoding to be set. Unfortunately, it cannot subclass `FileWriter`.

  By default, the file will be overwritten, but this may be changed to append.

  The encoding must be specified using either the name of the `Charset`, the `Charset`, or a `CharsetEncoder`. If the default encoding is required then use the `FileWriter` directly, rather than this implementation.

  Since:
    1.4
  Version:
    $Id: FileWriterWithEncoding.java 1686747 2015-06-21 18:44:49Z krosenvold $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.io.Writer` | `out` The writer to decorate.

    - ### Fields inherited from class java.io.Writer

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FileWriterWithEncoding(java.io.File file, java.nio.charset.Charset encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.io.File file, java.nio.charset.Charset encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.io.File file, java.nio.charset.CharsetEncoder encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.io.File file, java.nio.charset.CharsetEncoder encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.io.File file, java.lang.String encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.io.File file, java.lang.String encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.nio.charset.Charset encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.nio.charset.Charset encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.nio.charset.CharsetEncoder encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.nio.charset.CharsetEncoder encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.lang.String encoding)` Constructs a FileWriterWithEncoding with a file encoding.
    `FileWriterWithEncoding(java.lang.String filename, java.lang.String encoding, boolean append)` Constructs a FileWriterWithEncoding with a file encoding.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the stream.
    `void` | `flush()` Flush the stream.
    `private static java.io.Writer` | `initWriter(java.io.File file, java.lang.Object encoding, boolean append)` Initialise the wrapped file writer.
    `void` | `write(char[] chr)` Write the characters from an array.
    `void` | `write(char[] chr, int st, int end)` Write the specified characters from an array.
    `void` | `write(int idx)` Write a character.
    `void` | `write(java.lang.String str)` Write the characters from a string.
    `void` | `write(java.lang.String str, int st, int end)` Write the specified characters from a string.

    - ### Methods inherited from class java.io.Writer

      `append, append, append`

    - ### 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.Writer out

      The writer to decorate.

  - ### Constructor Detail

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.lang.String encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.lang.String encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.nio.charset.Charset encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.nio.charset.Charset encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.nio.charset.CharsetEncoder encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.lang.String filename,
                                java.nio.charset.CharsetEncoder encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `filename` - the name of the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file name or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.lang.String encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.lang.String encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.nio.charset.Charset encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.nio.charset.Charset encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.nio.charset.CharsetEncoder encoding)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

    - #### FileWriterWithEncoding

          public FileWriterWithEncoding(java.io.File file,
                                java.nio.charset.CharsetEncoder encoding,
                                boolean append)
                                 throws java.io.IOException

      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
        `file` - the file to write to, not null
        `encoding` - the encoding to use, not null
        `append` - true if content should be appended, false to overwrite
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - in case of an I/O error

  - ### Method Detail

    - #### initWriter

          private static java.io.Writer initWriter(java.io.File file,
                                  java.lang.Object encoding,
                                  boolean append)
                                            throws java.io.IOException

      Initialise the wrapped file writer. Ensure that a cleanup occurs if the writer creation fails.
      Parameters:
        `file` - the file to be accessed
        `encoding` - the encoding to use - may be Charset, CharsetEncoder or String
        `append` - true to append
      Returns:
        the initialised writer
      Throws:
        `java.lang.NullPointerException` - if the file or encoding is null
        `java.io.IOException` - if an error occurs

    - #### write

          public void write(int idx)
                     throws java.io.IOException

      Write a character.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `idx` - the character to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(char[] chr)
                     throws java.io.IOException

      Write the characters from an array.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `chr` - the characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(char[] chr,
                   int st,
                   int end)
                     throws java.io.IOException

      Write the specified characters from an array.
      Specified by:
        `write` in class `java.io.Writer`
      Parameters:
        `chr` - the characters to write
        `st` - The start offset
        `end` - The number of characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(java.lang.String str)
                     throws java.io.IOException

      Write the characters from a string.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `str` - the string to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(java.lang.String str,
                   int st,
                   int end)
                     throws java.io.IOException

      Write the specified characters from a string.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `str` - the string to write
        `st` - The start offset
        `end` - The number of characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### flush

          public void flush()
                     throws java.io.IOException

      Flush the stream.
      Specified by:
        `flush` in interface `java.io.Flushable`
      Specified by:
        `flush` in class `java.io.Writer`
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### close

          public void close()
                     throws java.io.IOException

      Close the stream.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in class `java.io.Writer`
      Throws:
        `java.io.IOException` - if an I/O error occurs

Copyright (c) 2002-2016 Apache Software Foundation