java - 打印文本文件中的最后几行

标签 java loops text-files

<分区>

我有一个文本文件,我首先要打印它的最后 6 行,然后检测何时添加了新行,以便它会根据最近的 Activity 不断更新屏幕。这个想法是我试图显示我的程序中最近进行的六笔交易。

我目前遇到的问题是它一直打印文本文件中的前六行(而不是最后六行),而我希望它以相反的方式打印。

这是我的示例代码:

  BufferedReader in = new BufferedReader(new FileReader("transaction-list.txt"));

  System.out.println();
  System.out.println("SIX MOST RECENT TRANSACTIONS:");
  System.out.println();

  String line;

  for (int i=0; i<6;i++){
    line=in.readLine();
    System.out.println(line);
  }

  in.close();

}catch (IOException e){
  e.printStackTrace();
}
break;

最佳答案

您必须将行保存到字符串数组中。阅读整个文件后,只需打印 Array。只记得从哪里开始读取保存的数组..

    BufferedReader in = new BufferedReader(new FileReader("transaction-list.txt"));
    System.out.println();
    System.out.println("SIX MOST RECENT TRANSACTIONS:");
    System.out.println();
    String[] last6 = new String[6];
    int count=0;
    while(in.ready()){
        last6[count++%6]=in.readLine();
    }
    for (int i=0; i<6;i++){
        System.out.println(last6[(i+count)%6]);
    }
    in.close();

关于java - 打印文本文件中的最后几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823960/

相关文章:

c - 逐行读取文本文件并将每一行保存在缓冲区中,而不管每行的数据类型和长度

c++ - 如何使用C++获取文本文件中的整数总和?

java - 在 Opencv 3.1 Java 中操作单个像素时如何防止或处理字节溢出和字节下溢

Java Stream.collect 使用 groupingBy

c - 如何使这个循环适用于我的回文测试?

java - 如何将字幕结构的 List<String[]> 转换为 HashMap<String, List<String[]>>

python - 标记化数据时出错。 C 错误 : EOF following escape character

java - 为什么合并排序在对反向排序列表进行排序时比普通排序列表更快?

java - Java 应用程序的网络许可控制

c - while 循环不会循环,程序在最后一个 printf 语句处结束......有什么想法吗?