Java缓冲读卡器 - 跳转到行

时间:2016-03-08 22:23:07

标签: java bufferedreader

我正在阅读这样的文件:

JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = fileChooser.showOpenDialog(this);

if (result == JFileChooser.CANCEL_OPTION) {
    System.exit(1);
}

file = fileChooser.getSelectedFile();

java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.FileReader(file));
String line = reader.readLine();
while (line != null) {
//do stuff for each line
}
reader.close();

该文件如下所示:

0 LOAD 1,3 
1 LOAD 0,2
2 ADD 1,2
3 ADD 0,1
4 LSS 1,3,2
5 STOR 62,1

我这样解析了它:

String[] actionFirstSplit = line.split(" ");

这里没有显示每行相关的代码。对于某些行,我想跳回到某个行号,并再次继续读取该文件。做这个的最好方式是什么?我是否必须创建另一个读者并跳过行直到我感兴趣的特定行?我正在查看this post的内容,但我想继续阅读文件的其余部分。

1 个答案:

答案 0 :(得分:2)

如果这是我的项目,我会

  • 创建一个类,可能称为MyClass(仅供讨论之用),以保存一行的数据。它有行号,文本字符串(命令?)和List<Integer>来保存可变数量的int参数。
  • 创建一个List<MyClass>来保存此类对象的线性集合。
  • 在我的单个BufferedReader中,读取每一行,创建一个MyClass对象,并将其放入集合中。
  • 当我需要循环回来时,我只是搜索我的集合 - 不需要重新读取文件,因为这是一个相对昂贵的任务,而循环通过List如ArrayList则不是这样。 / LI>