陶丫头
2009-11-19 11:06
浏览 1.3k
已采纳

怎么利用readLine()方法读取一个文本文件的最后一行并打印出来?

public static void main(String[] args) {
    File file = new File("D:/ALMR_access_log_L1_1.log");
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new FileReader(file));
        String temp = reader.readLine();
        while(temp != null) {
            System.out.println(temp);
            temp = reader.readLine();
        }

// System.out.println(temp);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • wuji1mol 2009-11-19 13:41
    已采纳

    可以用列表存储,然后输出最后一个元素吧
    List list=new LinkedList();
    try {
    reader = new BufferedReader(new FileReader(file));
    String temp = null;
    while(temp=reader.readLine() != null) {
    list.add(temp);
    }
    System.out.print(list.getLast());
    ...

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Ryankay 2009-11-19 13:57

    楼上得方法可以实现,通过数组和集合得索引来实现。下面说说我的:
    [quote]
    public static void main(String[] args) {
    File file = new File("D:/ALMR_access_log_L1_1.log");
    BufferedReader reader = null;
    String result;
    try {
    reader = new BufferedReader(new FileReader(file));
    String temp = reader.readLine();
    while(temp != null) {
    System.out.println(temp);
    temp = reader.readLine();
    if(temp != null){
    result=temp;
    }
    }
    System.out.println(result);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    reader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    [/quote]

    利用最后一行为null则不赋值得原理,这样得到的最后一行始终是有值的。

    评论
    解决 无用
    打赏 举报
  • lhl880520 2014-07-11 17:49

    请问文件过大的时候,用list或者数组难道还能跑? 不会异常?
    边边耍去....

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题