gpt4 book ai didi

java - 逐行读取文件并搜索文本

转载 作者:行者123 更新时间:2023-11-29 04:11:56 25 4
gpt4 key购买 nike

我是 Java 编程的新手,我目前正在尝试从文本文件“data.txt”中读取

文本文件包含如下所示的数据:

Hello World ,苹果,气球,积极

鲨鱼,老虎,水果,负面

我想逐行读取文件并搜索一个词,直到第一个分隔符“,”。如果找到结果,我将通过将该行写入另一个名为 output.txt 的 .txt 文件来返回整行。

比如我在程序运行后搜索“Hello”这个词,output.txt 将包含 Hello world, apple, balloon, POSITIVE

我尝试过使用缓冲读取器,但我不确定如何让它工作。

这是我的缓冲阅读器初始化代码:

    BufferedReader in = new BufferedReader(new 
FileReader("D:\\Downloads\\dataAnalysis1.txt"));
String line;
while((line = in.readLine()) != null)
{
System.out.println(line);
// extract by lines and write to file

}
in.close();

最佳答案

如果您使用的是 Java 8 或更高版本,则可以使用 NIO 来执行此操作。 NIO 是一个现代 IO 框架,它在许多情况下取代了旧的 FileBufferedReader 等。它围绕类 FilesPathsPath

我们将使用 Files#lines ( documentation ) 流式读取文件的所有行,按 , 拆分一行并按您的过滤第一列搜索针然后将它们收集到列表中。最后,我们将使用 Files#write ( documentation ) 将列表中的所有剩余行写入您的文件。

Path source = Paths.get("D:\\Downloads\\dataAnalysis1.txt");
Path destination = Paths.get("D:\\Downloads\\output.txt");

String needle = "Hello";

try {
List<String> lines = Files.lines(source)
.filter(line -> line.split(",")[0].contains(needle))
.collect(Collectors.toList());
Files.write(destination, lines);
} catch (IOException e) {
// TODO Handle the problem
e.printStackTrace();
}

关于java - 逐行读取文件并搜索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54614940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com