Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

    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.

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.

Version:
  $Id: LockableFileWriter.java 1311756 2012-04-10 14:32:42Z ggregory $

Field Summary

Fields inherited from class java.io.Writer
`lock`

Constructor Summary
`LockableFileWriter(File file)` Constructs a LockableFileWriter.
`LockableFileWriter(File file, boolean append)` Constructs a LockableFileWriter.
`LockableFileWriter(File file, boolean append, String lockDir)` Constructs a LockableFileWriter.
`LockableFileWriter(File file, Charset encoding)` Constructs a LockableFileWriter with a file encoding.
`LockableFileWriter(File file, Charset encoding, boolean append, String lockDir)` Constructs a LockableFileWriter with a file encoding.
`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(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
`void` | `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(String str)` Write the characters from a string.
`void` | `write(String str, int st, int end)` Write the specified characters from a string.

Methods inherited from class java.io.Writer
`append, append, append`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

    public LockableFileWriter(File file,
                              boolean append,
                              String lockDir)
                       throws IOException

  Constructs 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 encoding)
                       throws IOException

  Constructs a LockableFileWriter with a file encoding.

  Parameters:
    `file` - the file to write to, not null
    `encoding` - the encoding 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 encoding)
                       throws IOException

  Constructs a LockableFileWriter with a file encoding.

  Parameters:
    `file` - the file to write to, not null
    `encoding` - the encoding to use, null means platform default
  Throws:
    `NullPointerException` - if the file is null
    `IOException` - in case of an I/O error
    `UnsupportedCharsetException` - thrown instead of `UnsupportedEncodingException` in version 2.2 if the encoding is not supported.

### LockableFileWriter

    public LockableFileWriter(File file,
                              Charset encoding,
                              boolean append,
                              String lockDir)
                       throws IOException

  Constructs a LockableFileWriter with a file encoding.

  Parameters:
    `file` - the file to write to, not null
    `encoding` - 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
  Since:
    2.3

### LockableFileWriter

    public LockableFileWriter(File file,
                              String encoding,
                              boolean append,
                              String lockDir)
                       throws IOException

  Constructs a LockableFileWriter with a file encoding.

  Parameters:
    `file` - the file to write to, not null
    `encoding` - 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 of `UnsupportedEncodingException` 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 lockfile (if possible).

  Specified by:
    `close` in interface `Closeable`
  Specified by:
    `close` in class `Writer`
  Throws:
    `IOException` - if an I/O error occurs

### write

    public void write(int idx)
               throws IOException

  Write a character.

  Overrides:
    `write` in class `Writer`
  Parameters:
    `idx` - the character to write
  Throws:
    `IOException` - if an I/O error occurs

### write

    public void write(char[] chr)
               throws IOException

  Write the characters from an array.

  Overrides:
    `write` in class `Writer`
  Parameters:
    `chr` - the characters to write
  Throws:
    `IOException` - if an I/O error occurs

### write

    public void write(char[] chr,
                      int st,
                      int end)
               throws IOException

  Write the specified characters from an array.

  Specified by:
    `write` in class `Writer`
  Parameters:
    `chr` - the characters to write
    `st` - The start offset
    `end` - The number of characters to write
  Throws:
    `IOException` - if an I/O error occurs

### write

    public void write(String str)
               throws IOException

  Write the characters from a string.

  Overrides:
    `write` in class `Writer`
  Parameters:
    `str` - the string to write
  Throws:
    `IOException` - if an I/O error occurs

### write

    public void write(String str,
                      int st,
                      int end)
               throws IOException

  Write the specified characters from a string.

  Overrides:
    `write` in class `Writer`
  Parameters:
    `str` - the string to write
    `st` - The start offset
    `end` - The number of characters to write
  Throws:
    `IOException` - if an I/O error occurs

### flush

    public void flush()
               throws IOException

  Flush the stream.

  Specified by:
    `flush` in interface `Flushable`
  Specified by:
    `flush` in class `Writer`
  Throws:
    `IOException` - if an I/O error occurs

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.