参见英文答案 > Java IO implementation of unix/linux “tail -f” 9个
我有一个文本文件,我首先想要打印最后6行,然后检测何时添加了新行,以便它将继续使用最近的活动更新屏幕.我的想法是,我正在尝试显示我的程序中最近的六笔交易.
我目前遇到的问题是它在文本文件中保持打印第一行(不是最后一行),当我希望它是另一种方式.
这是我的示例代码:
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;
解决方法:
您必须将行保存到String 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,loops,text-files
来源: https://codeday.me/bug/20190609/1206311.html