本文整理汇总了Java中org.apache.zookeeper.common.AtomicFileOutputStream.abort方法的典型用法代码示例。如果您正苦于以下问题:Java AtomicFileOutputStream.abort方法的具体用法?Java AtomicFileOutputStream.abort怎么用?Java AtomicFileOutputStream.abort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.zookeeper.common.AtomicFileOutputStream
的用法示例。
在下文中一共展示了AtomicFileOutputStream.abort方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: writeLongToFile
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
/**
* Write a long value to disk atomically. Either succeeds or an exception
* is thrown.
* @param name file name to write the long to
* @param value the long value to write to the named file
* @throws IOException if the file cannot be written atomically
*/
private void writeLongToFile(String name, long value) throws IOException {
File file = new File(logFactory.getSnapDir(), name);
AtomicFileOutputStream out = new AtomicFileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
boolean aborted = false;
try {
bw.write(Long.toString(value));
bw.flush();
out.flush();
} catch (IOException e) {
LOG.error("Failed to write new file " + file, e);
// worst case here the tmp file/resources(fd) are not cleaned up
// and the caller will be notified (IOException)
aborted = true;
out.abort();
throw e;
} finally {
if (!aborted) {
// if the close operation (rename) fails we'll get notified.
// worst case the tmp file may still exist
out.close();
}
}
}
示例2: testAbortExistingFileAfterFlush
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
/**
* Ensure the tmp file is cleaned up and dstFile is untouched when
* aborting an existing file overwrite.
*/
@Test
public void testAbortExistingFileAfterFlush() throws IOException {
FileOutputStream fos1 = new FileOutputStream(dstFile);
fos1.write(TEST_STRING.getBytes());
fos1.close();
AtomicFileOutputStream fos2 = new AtomicFileOutputStream(dstFile);
fos2.write(TEST_STRING_2.getBytes());
fos2.flush();
fos2.abort();
// Should not have touched original file
assertEquals(TEST_STRING, ClientBase.readFile(dstFile));
assertEquals(1, testDir.list().length);
}
示例3: writeLongToFile
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
static void writeLongToFile(File file, long value) throws IOException {
AtomicFileOutputStream out = new AtomicFileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
try {
bw.write(Long.toString(value));
bw.flush();
out.flush();
out.close();
} catch (IOException e) {
LOG.error("Failed to write new file " + file, e);
out.abort();
throw e;
}
}
示例4: testAbortNewFile
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
/**
* Ensure the tmp file is cleaned up and dstFile is not created when
* aborting a new file.
*/
@Test
public void testAbortNewFile() throws IOException {
AtomicFileOutputStream fos = new AtomicFileOutputStream(dstFile);
fos.abort();
assertEquals(0, testDir.list().length);
}
示例5: testAbortNewFileAfterFlush
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
/**
* Ensure the tmp file is cleaned up and dstFile is not created when
* aborting a new file.
*/
@Test
public void testAbortNewFileAfterFlush() throws IOException {
AtomicFileOutputStream fos = new AtomicFileOutputStream(dstFile);
fos.write(TEST_STRING.getBytes());
fos.flush();
fos.abort();
assertEquals(0, testDir.list().length);
}
示例6: testAbortExistingFile
import org.apache.zookeeper.common.AtomicFileOutputStream; //导入方法依赖的package包/类
/**
* Ensure the tmp file is cleaned up and dstFile is untouched when
* aborting an existing file overwrite.
*/
@Test
public void testAbortExistingFile() throws IOException {
FileOutputStream fos1 = new FileOutputStream(dstFile);
fos1.write(TEST_STRING.getBytes());
fos1.close();
AtomicFileOutputStream fos2 = new AtomicFileOutputStream(dstFile);
fos2.abort();
// Should not have touched original file
assertEquals(TEST_STRING, ClientBase.readFile(dstFile));
assertEquals(1, testDir.list().length);
}