public class

RotatingFileOutputStream

extends OutputStream
java.lang.Object
   ↳ java.io.OutputStream
     ↳ com.pnfsoftware.jeb.util.io.RotatingFileOutputStream

Class Overview

Output stream whose sinks are a series of files. When the output exceeds the maximum file count and maximum size per file, it gets rotated: older output gets deleted to make room for more recent output.

Summary

Public Constructors
RotatingFileOutputStream(File folder, String basename, int rotFileCount, long rotFileSize)
Create a rotating file(s) output stream.
RotatingFileOutputStream(File folder, String basename, int rotFileCount, long rotFileSize, boolean buffered, boolean appendToExisting)
Create a rotating file(s) output stream.
Public Methods
void close()
void flush()
File getAdditionalOutputFile(int i)
Retrieve an additional output file by index.@return
File getOutputFile()
Retrieve the principal (first) output file.
int getRotatingFileCount()
long getRotatingFileSize()
long getRotationCount()
boolean isBuffered()
void rotate()
void write(byte[] b, int off, int len)
void write(int b)
Protected Methods
String generateFileSuffix(int fileIndex)
The file suffix appended to the base filename for additional file.
[Expand]
Inherited Methods
From class java.io.OutputStream
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable
From interface java.lang.AutoCloseable

Public Constructors

public RotatingFileOutputStream (File folder, String basename, int rotFileCount, long rotFileSize)

Create a rotating file(s) output stream. The stream is buffered, output is appended to existing files (if any).

Throws
IOException

public RotatingFileOutputStream (File folder, String basename, int rotFileCount, long rotFileSize, boolean buffered, boolean appendToExisting)

Create a rotating file(s) output stream.

Parameters
folder output folder; use null to denote the current working directory
basename base file name, must be non-empty
rotFileCount >=0 (can be 0 for no rotating output); should be >= 1
rotFileSize >0 (cannot be negative or "infinite": a maximum file size must be specified to prevent uncontrolled growth)
buffered enable or disable buffered-writes (recommended for high-frequency writing)
appendToExisting append to a previously existing file, if any
Throws
IOException on IO error

Public Methods

public void close ()

Throws
IOException

public void flush ()

Throws
IOException

public File getAdditionalOutputFile (int i)

Retrieve an additional output file by index.@return

Parameters
i file index, must be in [1, maximum_filecount]
Throws
IOException

public File getOutputFile ()

Retrieve the principal (first) output file.

public int getRotatingFileCount ()

public long getRotatingFileSize ()

public long getRotationCount ()

public boolean isBuffered ()

public void rotate ()

Throws
IOException

public void write (byte[] b, int off, int len)

Throws
IOException

public void write (int b)

Throws
IOException

Protected Methods

protected String generateFileSuffix (int fileIndex)

The file suffix appended to the base filename for additional file. Note that the default implementation simply generates a ".N" suffix.

Parameters
fileIndex file index