Groups | Search | Server Info | Login | Register


Groups > comp.lang.java.programmer > #5367

Re: a program process a constantly updated file

From www <xsli2@yahoo.com>
Newsgroups comp.lang.java.programmer
Subject Re: a program process a constantly updated file
Date 2011-06-18 17:40 -0700
Organization http://groups.google.com
Message-ID <30974ca8-32cf-43bd-afd6-9c0528882454@j25g2000vbr.googlegroups.com> (permalink)
References <885b80e6-864a-4076-b559-65b2452ffe9f@ct4g2000vbb.googlegroups.com> <itg3ts$rd7$1@dont-email.me> <itg4si$3dt$1@dont-email.me>

Show all headers | View raw


Thank you very much.

Based on what I found from google, I have made the following code. It
is very short and works well. It needs two extra apache jar files
which are available from web:
commons-vfs-1.0.jar
commons-logging-1.1.1.jar

<<FileMonitor.java>>
package test;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;

import org.apache.commons.vfs.FileChangeEvent;
import org.apache.commons.vfs.FileListener;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.VFS;
import org.apache.commons.vfs.impl.DefaultFileMonitor;

public class FileMonitor implements FileListener
{


    public static void main(final String[] args) throws Exception
    {

        final String inputFileName = "C:\\Program Files (x86)\\temp\
\file_to_be_monitored.txt";

        try
        {
            final FileSystemManager fsManager = VFS.getManager();
            final FileObject listendir =
fsManager.resolveFile(inputFileName);

            final DefaultFileMonitor fm = new DefaultFileMonitor(new
FileMonitor());
            fm.setRecursive(true);
            fm.addFile(listendir);
            fm.start();
            fm.run();
        }
        catch(final FileSystemException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public void fileChanged(final FileChangeEvent fe) throws Exception
    {
        System.out.println("file changed.");
    }

    public void fileCreated(final FileChangeEvent fe) throws Exception
    {
        System.out.println("file created");
        //// what ever you need to just write here

    }

    public void fileDeleted(final FileChangeEvent fe) throws Exception
    {
        System.out.println("file deleted");
    }
}
</End FileMonitor.java>

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

a program process a constantly updated file www <xsli2@yahoo.com> - 2011-06-17 10:15 -0700
  Re: a program process a constantly updated file www <xsli2@yahoo.com> - 2011-06-17 10:43 -0700
  Re: a program process a constantly updated file Jeff Higgins <jeff@invalid.invalid> - 2011-06-17 13:51 -0400
    Re: a program process a constantly updated file Jeff Higgins <jeff@invalid.invalid> - 2011-06-17 14:07 -0400
      Re: a program process a constantly updated file www <xsli2@yahoo.com> - 2011-06-18 17:40 -0700
  Re: a program process a constantly updated file Roedy Green <see_website@mindprod.com.invalid> - 2011-06-19 11:12 -0700

csiph-web