org.apache.hadoop.hdfs.util
Class AtomicFileOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by org.apache.hadoop.hdfs.util.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.


Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
AtomicFileOutputStream(File f)
           
 
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.io.FilterOutputStream
flush, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AtomicFileOutputStream

public AtomicFileOutputStream(File f)
                       throws FileNotFoundException
Throws:
FileNotFoundException
Method Detail

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 © 2014 Apache Software Foundation. All Rights Reserved.