Package org.apache.commons.io.input
Class Tailer
java.lang.Object
org.apache.commons.io.input.Tailer
- All Implemented Interfaces:
- AutoCloseable,- Runnable
Simple implementation of the Unix "tail -f" functionality.
 
 To build an instance, use Tailer.Builder.
 
1. Create a TailerListener implementation
 First you need to create a TailerListener implementation; (TailerListenerAdapter is provided for
 convenience so that you don't have to implement every method).
 
For example:
 public class MyTailerListener extends TailerListenerAdapter {
     public void handle(String line) {
         System.out.println(line);
     }
 }
 
 2. Using a Tailer
You can create and use a Tailer in one of three ways:
- Using a Tailer.Builder
- Using an Executor
- Using a Thread
An example of each is shown below.
2.1 Using a Builder
TailerListener listener = new MyTailerListener(); Tailer tailer = Tailer.builder() .setFile(file) .setTailerListener(listener) .setDelayDuration(delay) .get();
2.2 Using an Executor
 TailerListener listener = new MyTailerListener();
 Tailer tailer = new Tailer(file, listener, delay);
 // stupid executor impl. for demo purposes
 Executor executor = new Executor() {
     public void execute(Runnable command) {
         command.run();
     }
 };
 executor.execute(tailer);
 
 2.3 Using a Thread
TailerListener listener = new MyTailerListener(); Tailer tailer = new Tailer(file, listener, delay); Thread thread = new Thread(tailer); thread.setDaemon(true); // optional thread.start();
3. Stopping a Tailer
Remember to stop the tailer when you have done with it:
tailer.stop();
4. Interrupting a Tailer
 You can interrupt the thread a tailer is running on by calling Thread.interrupt().
 
thread.interrupt();
 If you interrupt a tailer, the tailer listener is called with the InterruptedException.
 
The file is read using the default Charset; this can be overridden if necessary.
- Since:
- 2.0, 2.5 Updated behavior and documentation for Thread.interrupt()., 2.12.0 AddTailer.TailableandTailer.RandomAccessResourceBridgeinterfaces to tail of files accessed using alternative libraries such as jCIFS or Apache Commons VFS.
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classBuilds a newTailer.static interfaceBridges access to a resource for random access, normally a file.static interfaceA tailable resource like a file.
- 
Constructor SummaryConstructorsConstructorDescriptionTailer(File file, Charset charset, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufSize) Deprecated.Tailer(File file, TailerListener tailerListener) Deprecated.Tailer(File file, TailerListener tailerListener, long delayMillis) Deprecated.Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end) Deprecated.Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen) Deprecated.Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, int bufferSize) Deprecated.
- 
Method SummaryModifier and TypeMethodDescriptionstatic Tailer.Builderbuilder()Constructs a newTailer.Builder.voidclose()Requests the tailer to complete its current loop and return.static Tailercreate(File file, Charset charset, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.static Tailercreate(File file, TailerListener tailerListener) Deprecated.static Tailercreate(File file, TailerListener tailerListener, long delayMillis) Deprecated.static Tailercreate(File file, TailerListener tailerListener, long delayMillis, boolean end) Deprecated.static Tailercreate(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen) Deprecated.static Tailercreate(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.static Tailercreate(File file, TailerListener tailerListener, long delayMillis, boolean end, int bufferSize) Deprecated.longgetDelay()Deprecated.UsegetDelayDuration().Gets the delay Duration.getFile()Gets the file.protected booleangetRun()Gets whether to keep on running.Gets the Tailable.voidrun()Follows changes in the file, callingTailerListener.handle(String)with each new line.voidstop()Deprecated.Useclose().
- 
Constructor Details- 
Tailer@Deprecated public Tailer(File file, Charset charset, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufSize) Deprecated.Creates a Tailer for the given file, with a specified buffer size.- Parameters:
- file- the file to follow.
- charset- the Charset to be used for reading the file
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- if true, close and reopen the file between reading chunks
- bufSize- Buffer size
 
- 
TailerDeprecated.Creates a Tailer for the given file, starting from the beginning, with the default delay of 1.0s.- Parameters:
- file- The file to follow.
- tailerListener- the TailerListener to use.
 
- 
TailerDeprecated.Creates a Tailer for the given file, starting from the beginning.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
 
- 
TailerDeprecated.Creates a Tailer for the given file, with a delay other than the default 1.0s.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
 
- 
Tailer@Deprecated public Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen) Deprecated.Creates a Tailer for the given file, with a delay other than the default 1.0s.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- if true, close and reopen the file between reading chunks
 
- 
Tailer@Deprecated public Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.Creates a Tailer for the given file, with a specified buffer size.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- if true, close and reopen the file between reading chunks
- bufferSize- Buffer size
 
- 
Tailer@Deprecated public Tailer(File file, TailerListener tailerListener, long delayMillis, boolean end, int bufferSize) Deprecated.Creates a Tailer for the given file, with a specified buffer size.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- bufferSize- Buffer size
 
 
- 
- 
Method Details- 
builderConstructs a newTailer.Builder.- Returns:
- Creates a new Tailer.Builder.
- Since:
- 2.12.0
 
- 
create@Deprecated public static Tailer create(File file, Charset charset, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.Creates and starts a Tailer for the given file.- Parameters:
- file- the file to follow.
- charset- the character set to use for reading the file.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- whether to close/reopen the file between chunks.
- bufferSize- buffer size.
- Returns:
- The new tailer.
 
- 
createDeprecated.Creates and starts a Tailer for the given file, starting at the beginning of the file with the default delay of 1.0s- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- Returns:
- The new tailer.
 
- 
createDeprecated.Creates and starts a Tailer for the given file, starting at the beginning of the file- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- Returns:
- The new tailer.
 
- 
create@Deprecated public static Tailer create(File file, TailerListener tailerListener, long delayMillis, boolean end) Deprecated.Creates and starts a Tailer for the given file with default buffer size.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- Returns:
- The new tailer.
 
- 
create@Deprecated public static Tailer create(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen) Deprecated.Creates and starts a Tailer for the given file with default buffer size.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- whether to close/reopen the file between chunks.
- Returns:
- The new tailer.
 
- 
create@Deprecated public static Tailer create(File file, TailerListener tailerListener, long delayMillis, boolean end, boolean reOpen, int bufferSize) Deprecated.Creates and starts a Tailer for the given file.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- reOpen- whether to close/reopen the file between chunks.
- bufferSize- buffer size.
- Returns:
- The new tailer.
 
- 
create@Deprecated public static Tailer create(File file, TailerListener tailerListener, long delayMillis, boolean end, int bufferSize) Deprecated.Creates and starts a Tailer for the given file.- Parameters:
- file- the file to follow.
- tailerListener- the TailerListener to use.
- delayMillis- the delay between checks of the file for new content in milliseconds.
- end- Set to true to tail from the end of the file, false to tail from the beginning of the file.
- bufferSize- buffer size.
- Returns:
- The new tailer.
 
- 
closeRequests the tailer to complete its current loop and return.- Specified by:
- closein interface- AutoCloseable
 
- 
getDelayDeprecated.UsegetDelayDuration().Gets the delay in milliseconds.- Returns:
- the delay in milliseconds.
 
- 
getDelayDurationGets the delay Duration.- Returns:
- the delay Duration.
- Since:
- 2.12.0
 
- 
getFileGets the file.- Returns:
- the file
- Throws:
- IllegalStateException- if constructed using a user provided- Tailer.Tailableimplementation
 
- 
getRunGets whether to keep on running.- Returns:
- whether to keep on running.
- Since:
- 2.5
 
- 
getTailableGets the Tailable.- Returns:
- the Tailable
- Since:
- 2.12.0
 
- 
runFollows changes in the file, callingTailerListener.handle(String)with each new line.
- 
stopDeprecated.Useclose().Requests the tailer to complete its current loop and return.
 
- 
builder(),Tailer.Builder, andTailer.Builder.get().