当前位置: 首页 > 知识库问答 >
问题:

Java缓冲读取器-跳转到行

相俊迈
2023-03-14

我在读这样一个文件:

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(" ");

这里没有显示与每一行相关的代码。对于某些行,我想跳回到某个行号,并再次继续阅读文件。最好的方法是什么?我必须创建另一个读取器并跳过行,直到我感兴趣的特定行吗?我正在沿着这篇文章的思路看,但我想继续阅读文件的其余部分。

共有1个答案

赵修诚
2023-03-14

如果这是我的项目,我会

  • 创建一个类,可能称为MyClass(仅用于讨论目的),以保存一行数据。它会有行号,文本字符串(命令?),还有一个列表

 类似资料:
  • 本文向大家介绍Java缓冲读取器,包括了Java缓冲读取器的使用技巧和注意事项,需要的朋友参考一下 示例 介绍 该BufferedReader班是以外的包装Reader是有两个主要目的类: ABufferedReader为包装的提供缓冲Reader。这允许应用程序一次读取一个字符,而不会产生过多的I / O开销。 一个BufferedReader用于一次读取文本行提供的功能。 使用Buffered

  • 问题内容: 为了寻求帮助,我目前已编写了HTTP服务器。目前,它可以很好地处理GET请求。但是,在使用POST时,缓冲的读取器似乎挂起。当请求停止时,其余输入流将通过缓冲的读取器读取。我在Google上找到了一些东西。我尝试将CRLF和协议版本从1.1更改为1.0(浏览器会自动将请求发送为1.1),任何想法或帮助将不胜感激。谢谢 问题答案: 这不安全!但是显示了如何在初始HTTP标头之后的输入流中

  • 我有以下代码来读取java文件,并打印出行。我通过两种方式实现了它: 使用流: 使用循环: 我被告知这是错误的,使用缓冲读取器是错误地使用了语言的特性。有没有更好的方法,我想知道使用语言功能的正确方法。

  • 问题内容: 我有一个线程可以从缓冲读取器读取字符(该读取器是从套接字创建的,如下所示): 此代码只能运行一次。例如,如果客户端连接并发送此消息:“这是一个测试”和“这是另一个测试”,则主机输出为: 请注意该程序不会收到“这是另一个测试”,因为它停留在读取流上。有什么办法在不减小缓冲区大小的情况下解决这个问题?这是线程的代码: 客户/发送者的代码(不是我的代码): 问题答案: 是一个 阻塞 调用,这

  • 我使用python boto与s3交互。我在s3上的文件是CSV的,我想从s3中读取行,使用缓冲区来绑定内存使用。 我想知道是否有人有任何方法可以编写python的io类来实现这一点?我们的目标是有某种抽象,能够包装boto键,并在键上提供一个或迭代器接口(只提供调用)。其复杂性在于,由于它存储为CSV,所以每一行的长度都是可变的。 目标是有一个抽象,我能够包装python boto key,然后

  • 问题内容: 我知道 bufio 包中的golang中的特定功能。 Peek返回下一个n个字节, 而不会使阅读器前进 。在下一个读取调用中,字节停止有效。如果Peek返回的字节数少于n个字节,则它还会返回一个错误,解释读取短的原因。如果n大于b的缓冲区大小,则错误为ErrBufferFull。 我需要能够从阅读器读取特定数量的字节,以 使阅读器更先进 。基本上,与上面的功能相同,但是它使阅读器更高级