Java如何在txt文件中显示和搜索相同的值,以便在值位于记录中时扫描和显示所有记录

Java如何在txt文件中显示和搜索相同的值,以便在值位于记录中时扫描和显示所有记录,java,Java,这是我的任务,我在文本文件的记录中有相同的值。 但我只能找到第一个并显示第一个。 如何找到具有该值的所有记录并显示它们。 这是密码 package projectsby; import java.io.File; import java.util.Scanner; import javax.swing.JOptionPane; public class Find { private static Scanner o; public void openFile

这是我的任务,我在文本文件的记录中有相同的值。 但我只能找到第一个并显示第一个。 如何找到具有该值的所有记录并显示它们。 这是密码

package projectsby;

import java.io.File;
import java.util.Scanner;
import javax.swing.JOptionPane;

    public class Find {
    private static Scanner o;

        public void openFile(){
            try{
                o = new Scanner(new File("/Users/e.h.j.hofman/NetBeansProjects/Projectsby/src/projectsby/Projects.txt"));
            }

    catch(Exception e) {
                System.out.println("Could not find file");   
    }}

        /**
         *
         * @param searchTerm
         * @param filepath
         */
        public void readEntries(String searchTerm, String filepath){

        boolean found = false;
        String Project = "";
        String omschrijving = "";
        String BU= ""; 
        String afdeling = "";

        try
        {
            o = new Scanner(new File(filepath));
            //o.useDelimiter("[ \n]");
            while(o.hasNext()
                    //&& !found )
            {

                Project = o.next();
                omschrijving = o.next();
                BU = o.next();
                afdeling = o.next();

                if(Project.equalsIgnoreCase(searchTerm))
                {
                    found = true; }
            }
           if (found) 
           {
在这里,我怀疑当存在某种while循环时,它会有所帮助

JOptionPane.showMessageDialog
(null,"Project: " + Project + " " +omschrijving + "\nBU: " 
+ BU + "\nAfdeling: " +afdeling);
           } else {
                       JOptionPane.showMessageDialog(null,"Project not found");
        }}
        catch(Exception e)
      {
            JOptionPane.showMessageDialog(null, "Error");
      }}
    public void closeFile(){
        o.close();
      }}

从您的代码格式有点难分辨,但是“if(found)”语句中的代码块只会在文件末尾执行,因为它在while循环之外。也许应该将代码移到“if(Project.equalsIgnoreCase(searchTerm))”语句中。然后,如果找到searchTerm,它将在文件中的每条记录上执行

那么就没有理由使用“find”布尔值


你有什么意见?你现在看到了什么?你期望什么样的产出?
 while (o.hasNext()) {
    ...
    if(Project.equalsIgnoreCase(searchTerm)) {
        JOptionPane.showMessageDialog ...
    }
 }