Java 缓冲 reader - 跳转到行
Java buffered reader - jump to line
我正在阅读这样的文件:
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(" ");
此处未显示与每一行关联的代码。对于某些行,我想跳回到某个行号,并再次继续阅读文件。做这个的最好方式是什么?我是否必须创建另一个 reader 并跳过几行直到我感兴趣的特定行?我正在查看 this post,但我想继续阅读文件的其余部分。
如果这是我的项目,我会
- 创建一个 class,可能称为 MyClass(仅供讨论),以保存一行数据。它会有行号、文本字符串(命令?)和一个
List<Integer>
来保存可变数量的 int 参数。
- 创建一个
List<MyClass>
来保存此 class 对象的线性集合。
- 在我的单个 BufferedReader 中,读取每一行,创建一个 MyClass 对象,并将其放入集合中。
- 当我需要循环返回时,我只需搜索我的集合——不需要从文件中重新读取,因为这是一项相对昂贵的任务,而循环遍历 ArrayList 等列表则不是那么简单.
我正在阅读这样的文件:
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(" ");
此处未显示与每一行关联的代码。对于某些行,我想跳回到某个行号,并再次继续阅读文件。做这个的最好方式是什么?我是否必须创建另一个 reader 并跳过几行直到我感兴趣的特定行?我正在查看 this post,但我想继续阅读文件的其余部分。
如果这是我的项目,我会
- 创建一个 class,可能称为 MyClass(仅供讨论),以保存一行数据。它会有行号、文本字符串(命令?)和一个
List<Integer>
来保存可变数量的 int 参数。 - 创建一个
List<MyClass>
来保存此 class 对象的线性集合。 - 在我的单个 BufferedReader 中,读取每一行,创建一个 MyClass 对象,并将其放入集合中。
- 当我需要循环返回时,我只需搜索我的集合——不需要从文件中重新读取,因为这是一项相对昂贵的任务,而循环遍历 ArrayList 等列表则不是那么简单.