org.apache.commons.io.output
Class LockableFileWriter
Writer
org.apache.commons.io.output.LockableFileWriter
public class LockableFileWriter
extends Writer
FileWriter that will create and honor lock files to allow simple
cross thread file lock handling.
This class provides a simple alternative to
FileWriter
that will use a lock file to prevent duplicate writes.
By default, the file will be overwritten, but this may be changed to append.
The lock directory may be specified, but defaults to the system property
java.io.tmpdir
.
The encoding may also be specified, and defaults to the platform default.
$Id: LockableFileWriter.java 437567 2006-08-28 06:39:07Z bayard $private static String | LCK - The extension for the lock file.
|
private File | lockFile - The lock file.
|
private Writer | out - The writer to decorate.
|
LockableFileWriter(File file) - Constructs a LockableFileWriter.
|
LockableFileWriter(File file, String encoding) - Constructs a LockableFileWriter with a file encoding.
|
LockableFileWriter(File file, String encoding, boolean append, String lockDir) - Constructs a LockableFileWriter with a file encoding.
|
LockableFileWriter(File file, boolean append) - Constructs a LockableFileWriter.
|
LockableFileWriter(File file, boolean append, String lockDir) - Constructs a LockableFileWriter.
|
LockableFileWriter(String fileName) - Constructs a LockableFileWriter.
|
LockableFileWriter(String fileName, boolean append) - Constructs a LockableFileWriter.
|
LockableFileWriter(String fileName, boolean append, String lockDir) - Constructs a LockableFileWriter.
|
void | close() - Closes the file writer.
|
private void | createLock() - Creates the lock file.
|
void | flush()
|
private Writer | initWriter(File file, String encoding, boolean append) - Initialise the wrapped file writer.
|
private void | testLockDir(File lockDir) - Tests that we can write to the lock directory.
|
void | write(String str)
|
void | write(String str, int st, int end)
|
void | write(char[] chr)
|
void | write(char[] chr, int st, int end)
|
void | write(int idx)
|
LCK
private static final String LCK
The extension for the lock file.
lockFile
private final File lockFile
The lock file.
out
private final Writer out
The writer to decorate.
LockableFileWriter
public LockableFileWriter(File file)
throws IOException
Constructs a LockableFileWriter.
If the file exists, it is overwritten.
file
- the file to write to, not null
LockableFileWriter
public LockableFileWriter(File file,
String encoding)
throws IOException
Constructs a LockableFileWriter with a file encoding.
file
- the file to write to, not nullencoding
- the encoding to use, null means platform default
LockableFileWriter
public LockableFileWriter(File file,
String encoding,
boolean append,
String lockDir)
throws IOException
Constructs a LockableFileWriter with a file encoding.
file
- the file to write to, not nullencoding
- the encoding to use, null means platform defaultappend
- true if content should be appended, false to overwritelockDir
- the directory in which the lock file should be held
LockableFileWriter
public LockableFileWriter(File file,
boolean append)
throws IOException
Constructs a LockableFileWriter.
file
- the file to write to, not nullappend
- true if content should be appended, false to overwrite
LockableFileWriter
public LockableFileWriter(File file,
boolean append,
String lockDir)
throws IOException
Constructs a LockableFileWriter.
file
- the file to write to, not nullappend
- true if content should be appended, false to overwritelockDir
- the directory in which the lock file should be held
LockableFileWriter
public LockableFileWriter(String fileName)
throws IOException
Constructs a LockableFileWriter.
If the file exists, it is overwritten.
fileName
- the file to write to, not null
LockableFileWriter
public LockableFileWriter(String fileName,
boolean append)
throws IOException
Constructs a LockableFileWriter.
fileName
- file to write to, not nullappend
- true if content should be appended, false to overwrite
LockableFileWriter
public LockableFileWriter(String fileName,
boolean append,
String lockDir)
throws IOException
Constructs a LockableFileWriter.
fileName
- the file to write to, not nullappend
- true if content should be appended, false to overwritelockDir
- the directory in which the lock file should be held
close
public void close()
throws IOException
Closes the file writer.
createLock
private void createLock()
throws IOException
Creates the lock file.
flush
public void flush()
throws IOException
initWriter
private Writer initWriter(File file,
String encoding,
boolean append)
throws IOException
Initialise the wrapped file writer.
Ensure that a cleanup occurs if the writer creation fails.
file
- the file to be accessedencoding
- the encoding to useappend
- true to append
testLockDir
private void testLockDir(File lockDir)
throws IOException
Tests that we can write to the lock directory.
lockDir
- the File representing the lock directory
write
public void write(String str)
throws IOException
java.io.Writer.write(String)
write
public void write(String str,
int st,
int end)
throws IOException
java.io.Writer.write(String, int, int)
write
public void write(char[] chr)
throws IOException
java.io.Writer.write(char[])
write
public void write(char[] chr,
int st,
int end)
throws IOException
java.io.Writer.write(char[], int, int)
write
public void write(int idx)
throws IOException
java.io.Writer.write(int)