org.apache.commons.io.output
Class LockableFileWriter
- java.lang.Object
-
- java.io.Writer
-
- org.apache.commons.io.output.LockableFileWriter
-
- All Implemented Interfaces:
- Closeable, Flushable, Appendable, AutoCloseable
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.Note: The lock file is deleted when
close()
is called - or if the main file cannot be opened initially. In the (unlikely) event that the lock file cannot be deleted, an exception is thrown.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.
-
Constructor Summary
Constructors Constructor and Description LockableFileWriter(File file)
Constructs a LockableFileWriter.LockableFileWriter(File file, boolean append)
Constructs a LockableFileWriter.LockableFileWriter(File file, boolean append, String lockDir)
Deprecated.2.5 useLockableFileWriter(File, Charset, boolean, String)
insteadLockableFileWriter(File file, Charset charset)
Constructs a LockableFileWriter with a file encoding.LockableFileWriter(File file, Charset charset, boolean append, String lockDir)
Constructs a LockableFileWriter with a file encoding.LockableFileWriter(File file, String charsetName)
Constructs a LockableFileWriter with a file encoding.LockableFileWriter(File file, String charsetName, boolean append, String lockDir)
Constructs a LockableFileWriter with a file encoding.LockableFileWriter(String fileName)
Constructs a LockableFileWriter.LockableFileWriter(String fileName, boolean append)
Constructs a LockableFileWriter.LockableFileWriter(String fileName, boolean append, String lockDir)
Constructs a LockableFileWriter.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description void
close()
Closes the file writer and deletes the lock file.void
flush()
Flushes the stream.void
write(char[] cbuf)
Writes the characters from an array.void
write(char[] cbuf, int off, int len)
Writes the specified characters from an array.void
write(int c)
Writes a character.void
write(String str)
Writes the characters from a string.void
write(String str, int off, int len)
Writes the specified characters from a string.
-
Constructor Detail
LockableFileWriter
public LockableFileWriter(String fileName) throws IOException
Constructs a LockableFileWriter. If the file exists, it is overwritten.- Parameters:
-
fileName
- the file to write to, not null - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
public LockableFileWriter(String fileName, boolean append) throws IOException
Constructs a LockableFileWriter.- Parameters:
-
fileName
- file to write to, not null -
append
- true if content should be appended, false to overwrite - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
public LockableFileWriter(String fileName, boolean append, String lockDir) throws IOException
Constructs a LockableFileWriter.- Parameters:
-
fileName
- the file to write to, not null -
append
- true if content should be appended, false to overwrite -
lockDir
- the directory in which the lock file should be held - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
public LockableFileWriter(File file) throws IOException
Constructs a LockableFileWriter. If the file exists, it is overwritten.- Parameters:
-
file
- the file to write to, not null - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
public LockableFileWriter(File file, boolean append) throws IOException
Constructs a LockableFileWriter.- Parameters:
-
file
- the file to write to, not null -
append
- true if content should be appended, false to overwrite - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
@Deprecated public LockableFileWriter(File file, boolean append, String lockDir) throws IOException
Deprecated. 2.5 useLockableFileWriter(File, Charset, boolean, String)
insteadConstructs a LockableFileWriter.- Parameters:
-
file
- the file to write to, not null -
append
- true if content should be appended, false to overwrite -
lockDir
- the directory in which the lock file should be held - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error
LockableFileWriter
public LockableFileWriter(File file, Charset charset) throws IOException
Constructs a LockableFileWriter with a file encoding.- Parameters:
-
file
- the file to write to, not null -
charset
- the charset to use, null means platform default - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error - Since:
- 2.3
LockableFileWriter
public LockableFileWriter(File file, String charsetName) throws IOException
Constructs a LockableFileWriter with a file encoding.- Parameters:
-
file
- the file to write to, not null -
charsetName
- the name of the requested charset, null means platform default - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
LockableFileWriter
public LockableFileWriter(File file, Charset charset, boolean append, String lockDir) throws IOException
Constructs a LockableFileWriter with a file encoding.- Parameters:
-
file
- the file to write to, not null -
charset
- the name of the requested charset, null means platform default -
append
- true if content should be appended, false to overwrite -
lockDir
- the directory in which the lock file should be held - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error - Since:
- 2.3
LockableFileWriter
public LockableFileWriter(File file, String charsetName, boolean append, String lockDir) throws IOException
Constructs a LockableFileWriter with a file encoding.- Parameters:
-
file
- the file to write to, not null -
charsetName
- the encoding to use, null means platform default -
append
- true if content should be appended, false to overwrite -
lockDir
- the directory in which the lock file should be held - Throws:
-
NullPointerException
- if the file is null -
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
Method Detail
close
public void close() throws IOException
Closes the file writer and deletes the lock file.- Specified by:
-
close
in interfaceCloseable
- Specified by:
-
close
in interfaceAutoCloseable
- Specified by:
-
close
in classWriter
- Throws:
-
IOException
- if an I/O error occurs.
write
public void write(int c) throws IOException
Writes a character.- Overrides:
-
write
in classWriter
- Parameters:
-
c
- the character to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(char[] cbuf) throws IOException
Writes the characters from an array.- Overrides:
-
write
in classWriter
- Parameters:
-
cbuf
- the characters to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(char[] cbuf, int off, int len) throws IOException
Writes the specified characters from an array.- Specified by:
-
write
in classWriter
- Parameters:
-
cbuf
- the characters to write -
off
- The start offset -
len
- The number of characters to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(String str) throws IOException
Writes the characters from a string.- Overrides:
-
write
in classWriter
- Parameters:
-
str
- the string to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(String str, int off, int len) throws IOException
Writes the specified characters from a string.- Overrides:
-
write
in classWriter
- Parameters:
-
str
- the string to write -
off
- The start offset -
len
- The number of characters to write - Throws:
-
IOException
- if an I/O error occurs.
flush
public void flush() throws IOException
Flushes the stream.- Specified by:
-
flush
in interfaceFlushable
- Specified by:
-
flush
in classWriter
- Throws:
-
IOException
- if an I/O error occurs.
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.