Class FileWriterWithEncoding

java.lang.Object
java.io.Writer
org.apache.commons.io.output.FileWriterWithEncoding
All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable

public class FileWriterWithEncoding extends 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
  • Field Details

    • out

      private final Writer out
      The writer to decorate.
  • Constructor Details

    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, String charsetName) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      fileName - the name of the file to write to, not null
      charsetName - the name of the requested charset, not null
      Throws:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, String charsetName, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      fileName - the name of the file to write to, not null
      charsetName - the name of the requested charset, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, Charset charset) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      fileName - the name of the file to write to, not null
      charset - the charset to use, not null
      Throws:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, Charset charset, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      fileName - the name of the file to write to, not null
      charset - the encoding to use, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, CharsetEncoder encoding) throws 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:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(String fileName, CharsetEncoder charsetEncoder, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      fileName - the name of the file to write to, not null
      charsetEncoder - the encoding to use, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file name or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, String charsetName) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      charsetName - the name of the requested charset, not null
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, String charsetName, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      charsetName - the name of the requested charset, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, Charset charset) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      charset - the encoding to use, not null
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, Charset encoding, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      encoding - the name of the requested charset, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, CharsetEncoder charsetEncoder) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      charsetEncoder - the encoding to use, not null
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
    • FileWriterWithEncoding

      public FileWriterWithEncoding(File file, CharsetEncoder charsetEncoder, boolean append) throws IOException
      Constructs a FileWriterWithEncoding with a file encoding.
      Parameters:
      file - the file to write to, not null
      charsetEncoder - the encoding to use, not null
      append - true if content should be appended, false to overwrite
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - in case of an I/O error
  • Method Details

    • initWriter

      private static Writer initWriter(File file, Object encoding, boolean append) throws 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 initialized writer
      Throws:
      NullPointerException - if the file or encoding is null
      IOException - if an error occurs
    • write

      public void write(int idx) throws IOException
      Write a character.
      Overrides:
      write in class Writer
      Parameters:
      idx - the character to write
      Throws:
      IOException - if an I/O error occurs
    • write

      public void write(char[] chr) throws IOException
      Write the characters from an array.
      Overrides:
      write in class Writer
      Parameters:
      chr - the characters to write
      Throws:
      IOException - if an I/O error occurs
    • write

      public void write(char[] chr, int st, int end) throws IOException
      Write the specified characters from an array.
      Specified by:
      write in class Writer
      Parameters:
      chr - the characters to write
      st - The start offset
      end - The number of characters to write
      Throws:
      IOException - if an I/O error occurs
    • write

      public void write(String str) throws IOException
      Write the characters from a string.
      Overrides:
      write in class Writer
      Parameters:
      str - the string to write
      Throws:
      IOException - if an I/O error occurs
    • write

      public void write(String str, int st, int end) throws IOException
      Write the specified characters from a string.
      Overrides:
      write in class Writer
      Parameters:
      str - the string to write
      st - The start offset
      end - The number of characters to write
      Throws:
      IOException - if an I/O error occurs
    • flush

      public void flush() throws IOException
      Flush the stream.
      Specified by:
      flush in interface Flushable
      Specified by:
      flush in class Writer
      Throws:
      IOException - if an I/O error occurs
    • close

      public void close() throws IOException
      Close the stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class Writer
      Throws:
      IOException - if an I/O error occurs