Package org.apache.commons.io.output
Class LockableFileWriter
- java.lang.Object
-
- java.io.Writer
-
- org.apache.commons.io.output.LockableFileWriter
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.Appendable,java.lang.AutoCloseable
public class LockableFileWriter extends java.io.WriterFileWriter that will create and honor lock files to allow simple cross thread file lock handling.This class provides a simple alternative to
FileWriterthat 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.To build an instance, use
LockableFileWriter.Builder.- See Also:
LockableFileWriter.Builder
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLockableFileWriter.BuilderBuilds a newLockableFileWriter.
-
Constructor Summary
Constructors Constructor Description LockableFileWriter(java.io.File file)Deprecated.LockableFileWriter(java.io.File file, boolean append)Deprecated.LockableFileWriter(java.io.File file, boolean append, java.lang.String lockDir)Deprecated.LockableFileWriter(java.io.File file, java.lang.String charsetName)Deprecated.LockableFileWriter(java.io.File file, java.lang.String charsetName, boolean append, java.lang.String lockDir)Deprecated.LockableFileWriter(java.io.File file, java.nio.charset.Charset charset)Deprecated.LockableFileWriter(java.io.File file, java.nio.charset.Charset charset, boolean append, java.lang.String lockDir)Deprecated.LockableFileWriter(java.lang.String fileName)Deprecated.LockableFileWriter(java.lang.String fileName, boolean append)Deprecated.LockableFileWriter(java.lang.String fileName, boolean append, java.lang.String lockDir)Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LockableFileWriter.Builderbuilder()Constructs a newLockableFileWriter.Builder.voidclose()Closes the file writer and deletes the lock file.voidflush()Flushes the stream.voidwrite(char[] cbuf)Writes the characters from an array.voidwrite(char[] cbuf, int off, int len)Writes the specified characters from an array.voidwrite(int c)Writes a character.voidwrite(java.lang.String str)Writes the characters from a string.voidwrite(java.lang.String str, int off, int len)Writes the specified characters from a string.
-
-
-
Constructor Detail
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file) throws java.io.IOExceptionDeprecated.Constructs a LockableFileWriter. If the file exists, it is overwritten.- Parameters:
file- the file to write to, not null- Throws:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, boolean append) throws java.io.IOExceptionDeprecated.Constructs a LockableFileWriter.- Parameters:
file- the file to write to, not nullappend- true if content should be appended, false to overwrite- Throws:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, boolean append, java.lang.String lockDir) throws java.io.IOExceptionDeprecated.Constructs 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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, java.nio.charset.Charset charset) throws java.io.IOExceptionDeprecated.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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error- Since:
- 2.3
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, java.nio.charset.Charset charset, boolean append, java.lang.String lockDir) throws java.io.IOExceptionDeprecated.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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error- Since:
- 2.3
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, java.lang.String charsetName) throws java.io.IOExceptionDeprecated.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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O errorjava.nio.charset.UnsupportedCharsetException- thrown instead ofUnsupportedEncodingExceptionin version 2.2 if the encoding is not supported.
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.io.File file, java.lang.String charsetName, boolean append, java.lang.String lockDir) throws java.io.IOExceptionDeprecated.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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O errorjava.nio.charset.UnsupportedCharsetException- thrown instead ofUnsupportedEncodingExceptionin version 2.2 if the encoding is not supported.
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.lang.String fileName) throws java.io.IOExceptionDeprecated.Constructs a LockableFileWriter. If the file exists, it is overwritten.- Parameters:
fileName- the file to write to, not null- Throws:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.lang.String fileName, boolean append) throws java.io.IOExceptionDeprecated.Constructs a LockableFileWriter.- Parameters:
fileName- file to write to, not nullappend- true if content should be appended, false to overwrite- Throws:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
LockableFileWriter
@Deprecated public LockableFileWriter(java.lang.String fileName, boolean append, java.lang.String lockDir) throws java.io.IOExceptionDeprecated.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:
java.lang.NullPointerException- if the file is nulljava.io.IOException- in case of an I/O error
-
-
Method Detail
-
builder
public static LockableFileWriter.Builder builder()
Constructs a newLockableFileWriter.Builder.- Returns:
- a new
LockableFileWriter.Builder. - Since:
- 2.12.0
-
close
public void close() throws java.io.IOExceptionCloses the file writer and deletes the lock file.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classjava.io.Writer- Throws:
java.io.IOException- if an I/O error occurs.
-
flush
public void flush() throws java.io.IOExceptionFlushes the stream.- Specified by:
flushin interfacejava.io.Flushable- Specified by:
flushin classjava.io.Writer- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(char[] cbuf) throws java.io.IOExceptionWrites the characters from an array.- Overrides:
writein classjava.io.Writer- Parameters:
cbuf- the characters to write- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(char[] cbuf, int off, int len) throws java.io.IOExceptionWrites the specified characters from an array.- Specified by:
writein classjava.io.Writer- Parameters:
cbuf- the characters to writeoff- The start offsetlen- The number of characters to write- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(int c) throws java.io.IOExceptionWrites a character.- Overrides:
writein classjava.io.Writer- Parameters:
c- the character to write- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(java.lang.String str) throws java.io.IOExceptionWrites the characters from a string.- Overrides:
writein classjava.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 off, int len) throws java.io.IOExceptionWrites the specified characters from a string.- Overrides:
writein classjava.io.Writer- Parameters:
str- the string to writeoff- The start offsetlen- The number of characters to write- Throws:
java.io.IOException- if an I/O error occurs.
-
-