我正在尝试使用bufferedreader从hdfs实时读取文件,即如果读取器到达文件末尾,我希望等待下一个条目,而不是退出while循环。
BufferedReader br = ...
String line = null;
while(true)
{
line = br.readLine();
if(line==null)
{
System.out.println("No log...Going to sleep");
Thread.sleep(2000);
continue;
}
System.out.println("We got a line: "+ line);
}
现在,当所有的行都被消耗后,它将进入睡眠状态而不是退出。但是,当我在文件中附加行时,它不会打印并继续休眠。要读取的文件是hdfs格式的,为了进行测试,我附加了如下文本:
echo "Hello World" | hadoop fs -appendToFile - /data/text.txt
append似乎工作正常,因为当我执行cat(或再次运行java代码)时,可以看到添加的文本。而且,不是检查 if(line==null)
我也试过了 if(!(br.ready())
还是不行。非常感谢您的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!