planet.io
Class NoReplacingOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byplanet.io.NoReplacingOutputStream

public class NoReplacingOutputStream
extends java.io.OutputStream

This class abstracts an stream that is capable of no replace the new saved status, according a specified boolean flag. If the file must not be replaced, a new file is created with a filename of type "filename_x", where "filename" is the specified base filename, and "x" is an iterative version number. That is, if "out" filename just exists, it attempts to create a new file "out_1"; if this just exist, it attempts to create a new file named "out_2"; ...

Author:
Jordi Pujol 11-jul-2005

Constructor Summary
NoReplacingOutputStream(java.lang.String filename, boolean replace)
          Constructor that initialize this stream with the specified base filename.
 
Method Summary
 void close()
           
 void flush()
           
 java.lang.String getFilename()
          Gets the filename used to save the current state.
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NoReplacingOutputStream

public NoReplacingOutputStream(java.lang.String filename,
                               boolean replace)
                        throws java.io.FileNotFoundException
Constructor that initialize this stream with the specified base filename. The replace flag shows if the file must be replaced with new save status or not. If must not be replaced, a suffix "_x" is added to the filename, where "x" is the number of version.

Parameters:
filename - Base filename to save new status.
replace - Boolean flag that shows if the file must be replaced.
Throws:
java.io.FileNotFoundException - if the new desired file just exists.
Method Detail

getFilename

public java.lang.String getFilename()
Gets the filename used to save the current state.

Returns:
The filename used to save the current state.

write

public void write(int b)
           throws java.io.IOException
Throws:
java.io.IOException
See Also:
OutputStream.write(int)

close

public void close()
           throws java.io.IOException
Throws:
java.io.IOException
See Also:
OutputStream.close()

flush

public void flush()
           throws java.io.IOException
Throws:
java.io.IOException
See Also:
OutputStream.flush()

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Throws:
java.io.IOException
See Also:
OutputStream.write(byte[], int, int)

write

public void write(byte[] b)
           throws java.io.IOException
Throws:
java.io.IOException
See Also:
OutputStream.write(byte[])