Package 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
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.
N.B. the lock file is deleted when close()
is called
- or if the main file cannot be opened initially.
In the (unlikely) event that the lockfile cannot be deleted,
this is not reported, and subsequent requests using
the same lockfile will fail.
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.
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionLockableFileWriter
(File file) Constructs a LockableFileWriter.LockableFileWriter
(File file, boolean append) Constructs a LockableFileWriter.LockableFileWriter
(File file, boolean append, String lockDir) Deprecated.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
(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
(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
Modifier and TypeMethodDescriptionvoid
close()
Closes the file writer and deletes the lockfile (if possible).void
flush()
Flush the stream.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 the characters from a string.void
Write the specified characters from a string.Methods inherited from class java.io.Writer
append, append, append, nullWriter
-
Constructor Details
-
LockableFileWriter
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 nullIOException
- in case of an I/O error
-
LockableFileWriter
Constructs a LockableFileWriter.- Parameters:
fileName
- file to write to, not nullappend
- true if content should be appended, false to overwrite- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O error
-
LockableFileWriter
Constructs a LockableFileWriter.- Parameters:
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- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O error
-
LockableFileWriter
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 nullIOException
- in case of an I/O error
-
LockableFileWriter
Constructs a LockableFileWriter.- Parameters:
file
- the file to write to, not nullappend
- true if content should be appended, false to overwrite- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O error
-
LockableFileWriter
Deprecated.2.5 useLockableFileWriter(File, Charset, boolean, String)
insteadConstructs a LockableFileWriter.- Parameters:
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- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O error
-
LockableFileWriter
Constructs a LockableFileWriter with a file encoding.- Parameters:
file
- the file to write to, not nullcharset
- the charset to use, null means platform default- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O error- Since:
- 2.3
-
LockableFileWriter
Constructs a LockableFileWriter with a file encoding.- Parameters:
file
- the file to write to, not nullcharsetName
- the name of the requested charset, null means platform default- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O errorUnsupportedCharsetException
- 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 nullcharset
- the name of the requested charset, null means platform defaultappend
- true if content should be appended, false to overwritelockDir
- the directory in which the lock file should be held- Throws:
NullPointerException
- if the file is nullIOException
- 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 nullcharsetName
- 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- Throws:
NullPointerException
- if the file is nullIOException
- in case of an I/O errorUnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
-
-
Method Details
-
close
Closes the file writer and deletes the lockfile (if possible).- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classWriter
- Throws:
IOException
- if an I/O error occurs
-
write
Write a character.- Overrides:
write
in classWriter
- Parameters:
idx
- the character to write- Throws:
IOException
- if an I/O error occurs
-
write
Write the characters from an array.- Overrides:
write
in classWriter
- Parameters:
chr
- the characters to write- Throws:
IOException
- if an I/O error occurs
-
write
Write the specified characters from an array.- Specified by:
write
in classWriter
- Parameters:
chr
- the characters to writest
- The start offsetend
- The number of characters to write- Throws:
IOException
- if an I/O error occurs
-
write
Write the characters from a string.- Overrides:
write
in classWriter
- Parameters:
str
- the string to write- Throws:
IOException
- if an I/O error occurs
-
write
Write the specified characters from a string.- Overrides:
write
in classWriter
- Parameters:
str
- the string to writest
- The start offsetend
- The number of characters to write- Throws:
IOException
- if an I/O error occurs
-
flush
Flush the stream.- Specified by:
flush
in interfaceFlushable
- Specified by:
flush
in classWriter
- Throws:
IOException
- if an I/O error occurs
-
LockableFileWriter(File, Charset, boolean, String)
instead