org.apache.zookeeper.common
Class AtomicFileOutputStream
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.apache.zookeeper.common.AtomicFileOutputStream
- All Implemented Interfaces:
- Closeable, Flushable
public class AtomicFileOutputStream
- extends FilterOutputStream
A FileOutputStream that has the property that it will only show up at its
destination once it has been entirely written and flushed to disk. While
being written, it will use a .tmp suffix.
When the output stream is closed, it is flushed, fsynced, and will be moved
into place, overwriting any file that already exists at that location.
NOTE: on Windows platforms, it will not atomically replace the target
file - instead the target file is deleted before this one is moved into
place.
|
Method Summary |
void |
abort()
Close the atomic file, but do not "commit" the temporary file on top of
the destination. |
void |
close()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AtomicFileOutputStream
public AtomicFileOutputStream(File f)
throws FileNotFoundException
- Throws:
FileNotFoundException
close
public void close()
throws IOException
- Specified by:
close in interface Closeable- Overrides:
close in class FilterOutputStream
- Throws:
IOException
abort
public void abort()
- Close the atomic file, but do not "commit" the temporary file on top of
the destination. This should be used if there is a failure in writing.
Copyright © 2013 The Apache Software Foundation