搜索文件中的字符串

时间:2015-04-09 21:32:59

标签: java file loops syntax

我希望用Java编写一个函数来搜索文本文件中的特定String。我应该使用哪个循环以及如何使用? (说它是一个循环,什么条件?)

2 个答案:

答案 0 :(得分:3)

最常用的循环是while循环,因为你需要循环并比较从文件中退出的字符串是否不是null。 嗯,这就是说,让我们看一些代码。您可以编写的解决方案是先在BufferedReader实例中打开文件,然后逐行读取该文件,并查看该行是否包含您要查找的字符串。 如果是,您可以使用boolean变量并将其指定为true,否则将其指定为false。 你可以在Java中使用这样的东西:

public static boolean findStringFile(String lookingForMe, String pathFile)
{

    boolean found = false;
    try{
        BufferedReader br = new BufferedReader(new FileReader(pathFile));
        try{
            String line;
            while ((line = br.readLine()) != null)
            {
                if (line.contains(lookingForMe))
                    found = true;
            }
        } finally {
            br.close();
        }
    } catch(IOException ioe)
    {
        System.out.println("Error while opening the file !");
    }
    return found;
}

此函数将String lookingForMe作为表示您在文件中搜索的字符串的第一个参数,作为表示文件路径的第二个参数String pathFile(它可以当它在项目的根目录中时只是nameOfTheFile.extension

希望这可以帮到你。

修改

如果您的文件有问题(文件不存在或因特权或其他原因而无法打开)或任何其他问题,则执行以下代码部分(如下所示)并不总是成功,执行将停止并抛出异常。

BufferedReader br = new BufferedReader(new FileReader(pathFile));

            String line;
            while ((line = br.readLine()) != null)
            {
                if (line.contains(lookingForMe))
                    found = true;
            }

"尝试"的目标是通过显示用户错误消息(您使用system.out.println("Your error message")指定的消息)来避免这些问题。

您应该使用的相应代码(以避免上面列出的问题)是带有try块(第一个)的代码。

有关Java中的异常的进一步说明,我建议您访问:https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

答案 1 :(得分:-1)

我通常使用的是BufferedReader并创建一个类似

的while循环
while((line = reader.readLine()) != NULL) {
    //do stuff
}