Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java在文件中查找令牌_Java_Regex_Parsing - Fatal编程技术网

使用java在文件中查找令牌

使用java在文件中查找令牌,java,regex,parsing,Java,Regex,Parsing,我正试图读取一个文本文件。我必须在该文件中找到一个特定的标记“STUDENT | ITEMS |”。然后我必须放弃该文件中接下来的八行,并读取第九行以获得所需的输入。现在我有些困惑。要使用哪一个来读取文件?扫描仪类还是缓冲区读取器?哪一个在性能问题上更好?我还看到了datastream和inputstream的使用。所以我有点困惑。 那么使用什么来查找令牌呢?正则表达式解析还是令牌解析?我是使用split()拆分一行,还是在解析类似以下内容的行时使用nextToken()拆分一行: “ID |

我正试图读取一个文本文件。我必须在该文件中找到一个特定的标记“STUDENT | ITEMS |”。然后我必须放弃该文件中接下来的八行,并读取第九行以获得所需的输入。现在我有些困惑。要使用哪一个来读取文件?扫描仪类还是缓冲区读取器?哪一个在性能问题上更好?我还看到了datastream和inputstream的使用。所以我有点困惑。 那么使用什么来查找令牌呢?正则表达式解析还是令牌解析?我是使用split()拆分一行,还是在解析类似以下内容的行时使用nextToken()拆分一行:
“ID | Name | value |”以获取ID名称和值。请提供帮助。

使用a,包装成an(用于正确编码),包装成a(用于方便的方法,例如),然后可以检查
字符串是否包含另一个
字符串
使用
FileUtils.readLines(文件f)
获取文件中要迭代的行的列表。然后只需使用
line.contains(“STUDENT | ITEMS |”)
来检测匹配项。跳过循环中接下来的8行。
(来自commons io的FileUtils)

因为您似乎对java中的数据输入缺乏经验,所以最好对此进行一点解释

FileInputStream从文件读入数据流。当您为文件名创建一个文件时,它将为您打开该文件

DataStreamReader将读取FileInputStream并处理编码,处理输入端,并在读取时为您提供字符

BufferedReader有助于提高效率和方便性。它帮助处理块读取并将每个块存储在其缓冲区中,而不是逐字节读取(开销很高)。这对您来说是不可见的,但有助于提高性能。它还为您提供了逐行阅读的功能,这将对您的任务有很大帮助

这就是为什么要将文件包装在不同的读卡器层中。我建议您看看如何使用ArrayLists(java.util),因为它们可以自动调整数组的大小,并且可以让您轻松地逐行存储行(作为字符串)。良好的未来实践,易于使用


就查找令牌而言,您已经阅读了您的行(逐行或存储)。您可以使用String.contains检查字符串是否有您的令牌,或者使用indexOf查找字符串中的特定位置。不管是哪种方式,从那时起,它只是跳过了正确的行数,并将第9行发送到所需的函数

您不知道如何编写这个微不足道的程序,但您确实关心“性能问题”?这就像有人问:“我不知道怎么做意大利面,有人能帮忙吗?顺便问一下,我应该使用电烤箱还是燃气烤箱,哪一个更有效?”