
Apache Commons IO - Utility Classes
- Apache Commons IO - IOUtils
- Apache Commons IO - FileUtils
- Apache Commons IO - FilenameUtils
- Apache Commons IO - FileSystemUtils
- Apache Commons IO - IOCase
- Apache Commons IO - LineIterator
Apache Commons IO - Filter Classes
- Apache Commons IO - NameFileFilter
- Apache Commons IO - WildcardFileFilter
- Apache Commons IO - SuffixFileFilter
- Apache Commons IO - PrefixFileFilter
- Apache Commons IO - OrFileFilter
- Apache Commons IO - AndFileFilter
- Apache Commons IO - FileEntry
Apache Commons IO - Comparator Classes
- Apache Commons IO - NameFileComparator
- Apache Commons IO - SizeFileComparator
- LastModifiedFileComparator
Apache Commons IO - Stream Classes
Apache Commons IO - Useful Resources
Apache Commons IO - FileAlterationMonitor Class
Overview
FileAlterationMonitor class represents a thread that spawns a monitoring thread triggering any registered FileAlterationObserver at a specified interval.
Class Declaration
Following is the declaration for org.apache.commons.io.monitor.FileAlterationMonitor Class −
public class FileAlterationMonitor extends Object implements Runnable
Here is the input file we need to parse −
input.txt
Welcome to TutorialsPoint. Simply Easy Learning.
Example - Nofiying Creation of a Directory and File.
CommonsIoTester.java
package com.tutorialspoint; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileDeleteStrategy; import org.apache.commons.io.FileUtils; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationMonitor; import org.apache.commons.io.monitor.FileAlterationObserver; public class CommonsIoTester { public static void main(String[] args) { //get the file object File inputFile = FileUtils.getFile("input.txt"); String absolutePath = inputFile.getAbsolutePath(); String parent = absolutePath.substring(0,absolutePath.indexOf("input.txt")); File parentDirectory = FileUtils.getFile(parent); FileAlterationObserver observer = FileAlterationObserver.builder().setFile(parentDirectory).get(); observer.addListener(new FileAlterationListenerAdaptor() { @Override public void onDirectoryCreate(File file) { System.out.println("Folder created: " + file.getName()); } @Override public void onFileCreate(File file) { System.out.println("File created: " + file.getName()); } }); //create a monitor to check changes after every 500 ms FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer); try { monitor.start(); //create a new directory File newFolder = new File("test"); File newFile = new File("test1"); newFolder.mkdirs(); Thread.sleep(1000); newFile.createNewFile(); Thread.sleep(1000); monitor.stop(10000); } catch(IOException e) { System.out.println(e.getMessage()); } catch(InterruptedException e) { System.out.println(e.getMessage()); } catch (Exception e) { System.out.println(e.getMessage()); } } }
Output
It will print the following result −
Folder created: test File created: test1
Example - Nofiying Deletion of a Directory and File.
CommonsIoTester.java
package com.tutorialspoint; import java.io.File; import org.apache.commons.io.FileDeleteStrategy; import org.apache.commons.io.FileUtils; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationMonitor; import org.apache.commons.io.monitor.FileAlterationObserver; public class CommonsIoTester { public static void main(String[] args) throws Exception { //get the file object File inputFile = FileUtils.getFile("input.txt"); String absolutePath = inputFile.getAbsolutePath(); String parent = absolutePath.substring(0,absolutePath.indexOf("input.txt")); File parentDirectory = FileUtils.getFile(parent); FileAlterationObserver observer = FileAlterationObserver.builder().setFile(parentDirectory).get(); observer.addListener(new FileAlterationListenerAdaptor() { @Override public void onDirectoryDelete(File file) { System.out.println("Folder deleted: " + file.getName()); } @Override public void onFileDelete(File file) { System.out.println("File deleted: " + file.getName()); } }); //create a monitor to check changes after every 500 ms FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer); monitor.start(); //create a new directory File newFolder = new File("test"); File newFile = new File("test1"); newFolder.mkdirs(); Thread.sleep(1000); newFile.createNewFile(); FileDeleteStrategy.NORMAL.delete(newFolder); Thread.sleep(1000); FileDeleteStrategy.NORMAL.delete(newFile); Thread.sleep(1000); monitor.stop(10000); } }
Output
It will print the following result −
Folder deleted: test File deleted: test1
Advertisements