一个txt文件内容:
aaa
程序以两秒一次的频率不停的去读一个文本文件这时候用记事本给txt文件内容加一行,保存
aaa
bbb
这时程序打印是正确的,会打印
aaa
bbb
但是再把bbb删掉保存后,问题来了
程序还是打印
aaa
bbb
而且再次打开txt时,刚才删掉的bbb又回来了程序代码如下
public static void main(String[] args) throws IOException { while (true) {
try {
RandomAccessFile raf = new RandomAccessFile("c:/test.txt", "r");
FileChannel fc = raf.getChannel();
MappedByteBuffer mbb = fc.map(MapMode.READ_ONLY, 0, fc.size());
byte[] b = new byte[(int) fc.size()];
mbb.get(b);
System.out.println(new String(b)); fc.close();
raf.close();
mbb.clear();
} catch (Exception e) {
e.printStackTrace();
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
} }