发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

从文件末尾逐行读取数据



从文件末尾逐行读取数据

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class FromEndRF {
  public static void main(String args[]) {
    RandomAccessFile rf = null;
    try {
      rf = new RandomAccessFile("d:\\2.txt", "r");
      long len = rf.length();
      long start = rf.getFilePointer();
      System.out.println(start);
      long nextend = start + len - 1;
      String line;
      rf.seek(nextend);
      int c = -1;
      while (nextend > start) {
        c = rf.read();
        if (c == '\n' || c == '\r') {
          line = rf.readLine();
          System.out.println(line);
          nextend--;
        }
        nextend--;
        rf.seek(nextend);
        if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行
          System.out.println(rf.readLine());
        }
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if (rf != null)
          rf.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}
JAVA世纪网
愿意为喜欢JAVA的朋友提供一点帮助
编辑 回复 快速回复 TOP

Re:从文件末尾逐行读取数据

我不知道你程序有没有跑过去,难道不是windows?呵呵
if (c == 'n' || c == 'r') 改为if (c == '\n' || c == '\r')吧,我今天跑的时候发现的!
Enjoy Java,Enjoy eceryday !!!
编辑 回复 快速回复 TOP

Re:从文件末尾逐行读取数据

代码替换的一个BUG,我马上修正!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:从文件末尾逐行读取数据

修正了! 谢谢你!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:从文件末尾逐行读取数据

呵呵,我只能发现,没能力修改啊,呵呵,旁观者清么~
Enjoy Java,Enjoy eceryday !!!
编辑 回复 快速回复 TOP
发新话题