- Apache Commons IO 教程
- Apache Commons IO - 主页
- Apache Commons IO - 概览
- Apache Commons IO - 环境设置
- 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 - 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 - FileAlterationObserver
- Apache Commons IO - FileAlterationMonitor
- Apache Commons IO - NameFileComparator
- Apache Commons IO - SizeFileComparator
- LastModifiedFileComparator
- Apache Commons IO - TeeInputStream
- Apache Commons IO - TeeOutputStream
- Apache Commons IO - 有用的资源
- Apache Commons IO - 快速指南
- Apache Commons IO - 有用的资源
- Apache Commons IO - 讨论
Apache Commons IO - FileAlterationObserver
FileAlterationObserver 表示根目录下的文件状态,检查文件系统并向监听器通知创建、更改或删除事件。
类声明
以下是
org.apache.commons.io.monitor.FileAlterationObserver 类的声明 −
public class FileAlterationObserver extends Object implements Serializable
FileAlterationObserver 类的示例
以下是我们需要解析的输入文件 −
Welcome to TutorialsPoint. Simply Easy Learning.
IOTester.java
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 IOTester { public static void main(String[] args) { try { usingFileAlterationObserver(); } catch(IOException e) { System.out.println(e.getMessage()); } } public static void usingFileAlterationObserver() throws IOException { //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 = new FileAlterationObserver(parentDirectory); observer.addListener(new FileAlterationListenerAdaptor() { @Override public void onDirectoryCreate(File file) { System.out.println("Folder created: " + file.getName()); } @Override public void onDirectoryDelete(File file) { System.out.println("Folder deleted: " + file.getName()); } @Override public void onFileCreate(File file) { System.out.println("File created: " + file.getName()); } @Override public void onFileDelete(File file) { Syst em.out.println("File deleted: " + 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); FileDeleteStrategy.NORMAL.delete(newFolder); Thread.sleep(1000); FileDeleteStrategy.NORMAL.delete(newFile); 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()); } } }
输出
它将打印以下结果。
Folder created: test File created: test1 Folder deleted: test File deleted: test1
广告