问题:最近在写一个文件的监视事件时,发现每次读取新增加的字符串时,总是少读每行的前两个字符,但是重启程序之后,发现输出正常,经过一番查找之后,发现可能是编码的问题。
RandomAccessFile的readLine方法,默认是以ISO-8859-1来进行读取的,所以需要将得到的字符串进行转码,转为原来文件的编码。
line=new String(line.getBytes("ISO-8859-1"),"UTF-8");
下边附带上文件监视器的代码 是Netty实战中的例子:文件监视器实现