/* FileWriter.java
Purpose:
Description:
History:
Tue Aug 19 15:05:38 2008, Created by tomyeh
Copyright (C) 2008 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.io;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;
/**
* Convenience class for writing character files.
* Unlike java.io.FileWriter, where the default character encoding is used,
* it accepts different character encoding.
*
* @author tomyeh
* @since 3.0.8
*/
public class FileWriter extends OutputStreamWriter {
/**
* Constructs a FileWriter object given a file name.
*
* @param filename String The system-dependent filename.
* @param charset the charset to decode the file, such as UTF-8.
* If null, UTF-8 is assumed.
* @throws IOException if the named file exists but is a directory
* rather than a regular file, does not exist but cannot be created,
* or cannot be opened for any other reason
*/
public FileWriter(String filename, String charset) throws IOException {
super(new FileOutputStream(filename), charset != null ? charset: "UTF-8");
}
/**
* Constructs a FileWriter object given a file name with a boolean
* indicating whether or not to append the data written.
*
* @param filename String The system-dependent filename.
* @param charset the charset to decode the file, such as UTF-8.
* If null, UTF-8 is assumed.
* @param append boolean if true, then data will be written
* to the end of the file rather than the beginning.
* @throws IOException if the named file exists but is a directory
* rather than a regular file, does not exist but cannot be created,
* or cannot be opened for any other reason
*/
public FileWriter(String filename, String charset, boolean append) throws IOException {
super(new FileOutputStream(filename, append), charset != null ? charset: "UTF-8");
}
/**
* Constructs a FileWriter object given a File object.
*
* @param file a File object to write to.
* @param charset the charset to decode the file, such as UTF-8.
* If null, UTF-8 is assumed.
* @throws IOException if the named file exists but is a directory
* rather than a regular file, does not exist but cannot be created,
* or cannot be opened for any other reason
*/
public FileWriter(File file, String charset) throws IOException {
super(new FileOutputStream(file), charset != null ? charset: "UTF-8");
}
/**
* Constructs a FileWriter object given a File object. If the second
* argument is true, then bytes will be written to the end
* of the file rather than the beginning.
*
* @param file a File object to write to
* @param charset the charset to decode the file, such as UTF-8.
* If null, UTF-8 is assumed.
* @param append if true, then bytes will be written
* to the end of the file rather than the beginning
* @throws IOException if the named file exists but is a directory
* rather than a regular file, does not exist but cannot be created,
* or cannot be opened for any other reason
*/
public FileWriter(File file, String charset, boolean append) throws IOException {
super(new FileOutputStream(file, append), charset != null ? charset: "UTF-8");
}
/**
* Constructs a FileWriter object associated with a file descriptor.
*
* @param fd FileDescriptor object to write to.
* @param charset the charset to decode the file, such as UTF-8.
* If null, UTF-8 is assumed.
*/
public FileWriter(FileDescriptor fd, String charset) throws IOException {
super(new FileOutputStream(fd), charset != null ? charset: "UTF-8");
}
}