org.apache.commons.io.output
Class FileWriterWithEncoding

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

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:
Commons IO 1.4
Version:
$Id: FileWriterWithEncoding.java 611634 2008-01-13 20:35:00Z niallp $

Field Summary
private  java.io.Writer out
          The writer to decorate.
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
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
 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 class java.io.Writer
Throws:
java.io.IOException - if an I/O error occurs


Copyright (c) 2002-2011 Apache Software Foundation