Class LazyFileOutputStream

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

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

    Constructors 
    Constructor Description
    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

    Modifier and Type Method Description
    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, nullOutputStream

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 Details

    • 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.lang.AutoCloseable
      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 problem.
    • 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.