org.apache.tools.ant.util
Class LazyFileOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.tools.ant.util.LazyFileOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class LazyFileOutputStream
extends java.io.OutputStream

Class that delays opening the output file until the first bytes shall be written or the method open has been invoked explicitly.

Since:
Ant 1.6

Constructor Summary
LazyFileOutputStream(java.io.File f)
          Creates a stream that will eventually write to the file with the given name and replace it.
LazyFileOutputStream(java.io.File file, boolean append)
          Creates a stream that will eventually write to the file with the given name and optionally append to instead of replacing it.
LazyFileOutputStream(java.io.File file, boolean append, boolean alwaysCreate)
          Creates a stream that will eventually write to the file with the given name, optionally append to instead of replacing it, and optionally always create a file (even if zero length).
LazyFileOutputStream(java.lang.String name)
          Creates a stream that will eventually write to the file with the given name and replace it.
LazyFileOutputStream(java.lang.String name, boolean append)
          Creates a stream that will eventually write to the file with the given name and optionally append to instead of replacing it.
 
Method Summary
 void close()
          Close the file.
 void open()
          Explicitly open the file for writing.
 void write(byte[] b)
          Delegates to the three-arg version.
 void write(byte[] b, int offset, int len)
          Write part of a byte array.
 void write(int b)
          Write a byte.
 
Methods inherited from class java.io.OutputStream
flush
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LazyFileOutputStream

public LazyFileOutputStream(java.lang.String name)
Creates a stream that will eventually write to the file with the given name and replace it.

Parameters:
name - the filename.

LazyFileOutputStream

public LazyFileOutputStream(java.lang.String name,
                            boolean append)
Creates a stream that will eventually write to the file with the given name and optionally append to instead of replacing it.

Parameters:
name - the filename.
append - if true append rather than replace.

LazyFileOutputStream

public LazyFileOutputStream(java.io.File f)
Creates a stream that will eventually write to the file with the given name and replace it.

Parameters:
f - the file to create.

LazyFileOutputStream

public LazyFileOutputStream(java.io.File file,
                            boolean append)
Creates a stream that will eventually write to the file with the given name and optionally append to instead of replacing it.

Parameters:
file - the file to create.
append - if true append rather than replace.

LazyFileOutputStream

public LazyFileOutputStream(java.io.File file,
                            boolean append,
                            boolean alwaysCreate)
Creates a stream that will eventually write to the file with the given name, optionally append to instead of replacing it, and optionally always create a file (even if zero length).

Parameters:
file - the file to create.
append - if true append rather than replace.
alwaysCreate - if true create the file even if nothing to write.
Method Detail

open

public void open()
          throws java.io.IOException
Explicitly open the file for writing.

Returns silently if the file has already been opened.

Throws:
java.io.IOException - if there is an error.

close

public void close()
           throws java.io.IOException
Close the file.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException - if there is an error.

write

public void write(byte[] b)
           throws java.io.IOException
Delegates to the three-arg version.

Overrides:
write in class java.io.OutputStream
Parameters:
b - the bytearray to write.
Throws:
java.io.IOException - if there is a problem.

write

public void write(byte[] b,
                  int offset,
                  int len)
           throws java.io.IOException
Write part of a byte array.

Overrides:
write in class java.io.OutputStream
Parameters:
b - the byte array.
offset - write from this index.
len - the number of bytes to write.
Throws:
java.io.IOException - if there is a probem.

write

public void write(int b)
           throws java.io.IOException
Write a byte.

Specified by:
write in class java.io.OutputStream
Parameters:
b - the byte to write.
Throws:
java.io.IOException - if there is a problem.