Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.io.input
Class Tailer

    java.lang.Object
      org.apache.commons.io.input.Tailer

All Implemented Interfaces:
  Runnable

    public class Tailer

extends Object
implements Runnable

Simple implementation of the unix "tail -f" functionality.

## 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 one of the static helper methods:
  - `create(File, TailerListener)`
  - `create(File, TailerListener, long)`
  - `create(File, TailerListener, long, boolean)`
- Using an `Executor`
- Using an `Thread`

An example of each of these is shown below.

### 2.1 Using the static helper method

          TailerListener listener = new MyTailerListener();
          Tailer tailer = Tailer.create(file, listener, delay);

### 2.2 Use 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 Use 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. Stop Tailing

Remember to stop the tailer when you have done with it:

          tailer.stop();

Since:
  Commons IO 2.0
Version:
  $Id: Tailer.java 1033786 2010-11-11 00:37:37Z niallp $
See Also:
  `TailerListener`, `TailerListenerAdapter`

Constructor Summary
`Tailer(File file, TailerListener listener)` Creates a Tailer for the given file, starting from the beginning, with the default delay of 1.0s.
`Tailer(File file, TailerListener listener, long delay)` Creates a Tailer for the given file, starting from the beginning.
`Tailer(File file, TailerListener listener, long delay, boolean end)` Creates a Tailer for the given file, with a delay other than the default 1.0s.

Method Summary
`static Tailer` | `create(File file, TailerListener listener)` Creates and starts a Tailer for the given file, starting at the beginning of the file with the default delay of 1.0s
`static Tailer` | `create(File file, TailerListener listener, long delay)` Creates and starts a Tailer for the given file, starting at the beginning of the file
`static Tailer` | `create(File file, TailerListener listener, long delay, boolean end)` Creates and starts a Tailer for the given file.
`long` | `getDelay()` Return the delay.
`File` | `getFile()` Return the file.
`void` | `run()` Follows changes in the file, calling the TailerListener's handle method for each new line.
`void` | `stop()` Allows the tailer to complete its current loop and return.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Tailer

    public Tailer(File file,
                  TailerListener listener)

  Creates a Tailer for the given file, starting from the beginning, with the default delay of 1.0s.

  Parameters:
    `file` - The file to follow.
    `listener` - the TailerListener to use.

### Tailer

    public Tailer(File file,
                  TailerListener listener,
                  long delay)

  Creates a Tailer for the given file, starting from the beginning.

  Parameters:
    `file` - the file to follow.
    `listener` - the TailerListener to use.
    `delay` - the delay between checks of the file for new content in milliseconds.

### Tailer

    public Tailer(File file,
                  TailerListener listener,
                  long delay,
                  boolean end)

  Creates a Tailer for the given file, with a delay other than the default 1.0s.

  Parameters:
    `file` - the file to follow.
    `listener` - the TailerListener to use.
    `delay` - 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.

Method Detail

### create

    public static Tailer create(File file,
                                TailerListener listener,
                                long delay,
                                boolean end)

  Creates and starts a Tailer for the given file.

  Parameters:
    `file` - the file to follow.
    `listener` - the TailerListener to use.
    `delay` - 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

    public static Tailer create(File file,
                                TailerListener listener,
                                long delay)

  Creates and starts a Tailer for the given file, starting at the beginning of the file

  Parameters:
    `file` - the file to follow.
    `listener` - the TailerListener to use.
    `delay` - the delay between checks of the file for new content in milliseconds.
  Returns:
    The new tailer

### create

    public static Tailer create(File file,
                                TailerListener listener)

  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.
    `listener` - the TailerListener to use.
  Returns:
    The new tailer

### getFile

    public File getFile()

  Return the file.

  Returns:
    the file

### getDelay

    public long getDelay()

  Return the delay.

  Returns:
    the delay

### run

    public void run()

  Follows changes in the file, calling the TailerListener's handle method for each new line.

  Specified by:
    `run` in interface `Runnable`

### stop

    public void stop()

  Allows the tailer to complete its current loop and return.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.