Java如何高效检测文件inode变化

系统Linux,Windows下理论上通用。

Flume编写Source时候遇到一个问题,读文件代码如下:

File file = new File(this.file);
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),this.info.get("charset")));
while (true) {
	String line = reader.readLine();
	if(null != line){
		...
	}
	Thread.sleep(1000);
}

当目标文件重定向(>或>>)后读取不受影响,当用vi编辑或删除重建文件后无法继续读取(没有任何异常),经测试发现是因为文件Inode变了。

继续阅读