有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在文件中搜索字符串

我希望用Java编写一个函数,在文本文件中搜索特定字符串。我应该使用哪个循环以及如何使用?(假设这是一个while循环,条件是什么?)


共 (2) 个答案

  1. # 1 楼答案

    最常用的循环是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;
                }
    

    “try”的目标是通过显示用户错误消息(您用system.out.println("Your error message")指定的消息)来避免此类问题

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

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

  2. # 2 楼答案

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

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