public static void main(String[] args) throws Exception{ //以只读方式打开日志文件 RandomAccessFile raf = new RandomAccessFile("E:\\gateway.log", "r"); //初始值赋0,让RandomAccessFile第一次读取的文件的时候指针指向文件开头 long len = 0; while(true){ //捕获异常信息记录日志,抛出异常会使线程停止 try { //获取文件大小 long len1 = raf.length(); if(len1 > len){ raf.seek(len);//若文件大小增长了,将文件指针指向上次读取完后的位置 String str1 = raf.readLine(); while(str1 != null){ System.out.println(str1); str1 = raf.readLine(); } len = len1; } //每两秒读取一次新添加进去的日志数据 Thread.sleep(2*1000); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
使用RandomAccessFile 对日志文件读取,以及读取追加的文件内容。
最新推荐文章于 2022-04-10 22:17:16 发布