gov.llnl.babel.backend.writers
Class ChangeWriter
Writergov.llnl.babel.backend.writers.ChangeWriter
public class ChangeWriter
extends Writer
This class will write a file leaving its last time modified unchanged if
the content is unchanged. When overwriting a file, this
java.io.Writer will initially write a temporary file. When
close() is called, it compares the contents of the original file with the
temporary file. If the contents have changed, it will overwrite the
original file with the contents of the temporary file; otherwise, the
original file is left unchanged. Thus, the last time modified of the
original file is only changed when the contents change. The temporary
file is deleted when
close() is called.
ChangeWriter(File destination, File directory)- Create a writer to write a new file or overwrite an old file.
|
void | close()- Complete writing to the original file if needed.
|
static Writer | createWriter(String filename, String directory)- Create a
java.io.Writer for a particular filename and directory
combination.
|
protected void | finalize()- Make sure to close the writer if the programmer should forget to do so.
|
void | flush()- This will flush all the buffered output into the temporary file.
|
void | write(String str)- Write a string.
|
void | write(String str, int off, int len)- Write a substring.
|
void | write(char[] cbuf)- Write a character array.
|
void | write(char[] cbuf, int off, int len)- Write part of a character array.
|
void | write(int c)- Write a character.
|
ChangeWriter
public ChangeWriter(File destination,
File directory)
throws IOException Create a writer to write a new file or overwrite an old file.
You may prefer to use
createWriter(String,String) instead of this
constructor; it uses the simpler
java.io.FileWriter if
destination does not already exist.
destination - this is the location of the new filedirectory - this is the directory where the temporary
file will be created. If null,
a system dependent temporary will be
used (e.g., /tmp on Unix).
close
public void close()
throws IOException Complete writing to the original file if needed. This compares
the contents of the temporary file and the original file. If they
differ or if the original file does not exist, this copies the
contents from the temporary file to the original file. This will
remove the temporary file.
createWriter
public static Writer createWriter(String filename,
String directory)
throws IOException Create a java.io.Writer for a particular filename and directory
combination.
filename - the filename without any leading directory information.directory - the directory name. This string will be prepended
to filename to get the whole path to the file.
If it's not an empty string, it should end with
the directory separator character,
java.io.File.separatorChar.
- a writer that will write to (directory + filename).
This is typically a
ChangeWriter or
a java.io.FileWriter. The final type
shouldn't really matter to the caller.
finalize
protected void finalize()
throws Throwable Make sure to close the writer if the programmer should forget to do so.
flush
public void flush()
throws IOException This will flush all the buffered output into the temporary file.
Because all output goes to the temporary file first, flushing will
not force an update to the final file. The decision on whether
to update the final file or not is made when
close() is
called.
write
public void write(String str)
throws IOException Write a string.
str - the string to be output.
write
public void write(String str,
int off,
int len)
throws IOException Write a substring.
str - the whole stringoff - the offset of the first character to be written.len - the number of characters to write.
write
public void write(char[] cbuf)
throws IOException Write a character array.
cbuf - the character array to be output.
write
public void write(char[] cbuf,
int off,
int len)
throws IOException Write part of a character array.
cbuf - the character array to be output.off - the index of the first character to be written.len - the number of characters to write.
write
public void write(int c)
throws IOException Write a character.
c - the character to be output.