Class LazyFileOutputStream

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

public class LazyFileOutputStream extends 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
    Creates a stream that will eventually write to the file with the given name and replace it.
    LazyFileOutputStream(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(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).
    Creates a stream that will eventually write to the file with the given name and replace it.
    LazyFileOutputStream(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 the file.
    void
    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(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(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(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(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(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 IOException
      Explicitly open the file for writing.

      Returns silently if the file has already been opened.

      Throws:
      IOException - if there is an error.
    • close

      public void close() throws IOException
      Close the file.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class OutputStream
      Throws:
      IOException - if there is an error.
    • write

      public void write(byte[] b) throws IOException
      Delegates to the three-arg version.
      Overrides:
      write in class OutputStream
      Parameters:
      b - the bytearray to write.
      Throws:
      IOException - if there is a problem.
    • write

      public void write(byte[] b, int offset, int len) throws IOException
      Write part of a byte array.
      Overrides:
      write in class OutputStream
      Parameters:
      b - the byte array.
      offset - write from this index.
      len - the number of bytes to write.
      Throws:
      IOException - if there is a problem.
    • write

      public void write(int b) throws IOException
      Write a byte.
      Specified by:
      write in class OutputStream
      Parameters:
      b - the byte to write.
      Throws:
      IOException - if there is a problem.