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

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();
      }}

#1楼 票数:0

从您的代码格式很难看出来,但是“ if(found)”语句中的代码块仅在文件末尾执行,因为它位于while循环之外。 也许应该将代码移到“ if(Project.equalsIgnoreCase(searchTerm))”语句中。 然后,如果找到searchTerm,它将对文件中的每个记录执行。

那么就没有理由使用“找到的”布尔值。

 while (o.hasNext()) {
    ...
    if(Project.equalsIgnoreCase(searchTerm)) {
        JOptionPane.showMessageDialog ...
    }
 }

  ask by LizGeorge translate from so

未解决问题?本站智能推荐:

1回复

Java:如何在不破坏线条外观的情况下将 txt 文件的内容复制到另一个 txt 文件中(扫描仪)?

我有一个与文件类、扫描仪和印刷机相关的作业。 大部分作业应该完成,它只是我无法解决的一部分。 对于上下文,这些是说明 “编写一个程序来编辑文本文件的额外空白。该程序将用一个空白替换任何两个或多个空白的字符串。您的程序应按如下方式工作:创建一个临时文件。从文件复制到临时文件,但执行不要复制多余的空白
1回复

如何在不替换旧记录的情况下继续将新记录追加到文本文件中(Java)

我现在的问题是当我追加新记录时,它将替换旧记录。 下面是将我从文本框获得的所有输入写入文本文件的代码块: 这是主类: 文本文件中的输出: 因此,如果我希望程序能够继续将新记录附加到文本文件中,我需要做的解决方案是什么?
3回复

如何在没有Java中的所有值的情况下从枚举创建对象

我有一个名为PaymentFrequency的枚举: 现在,如果我在我的bean中这样做: 我将从枚举中获取所有值。 我怎样才能得到W和M的值?
2回复

如何在不使用实体的情况下显示表中的值?

我正在尝试在我的网络应用程序中执行“sql 解释器”,仅适用于 CRUD。 一切正常,我正在使用方法 prepareStatement() 来执行查询。 但我有操作 select 的问题: 当我仅对 1 个字段使用 select 操作时,解析为字符串会给出相当好的结果: 有什么办法可以执行:
2回复

如何在不刷新的情况下更新页面中显示的值

我在JSF页面中有这3个字段 我也有一个具有以下属性的后备bean: 我希望在将某些值插入字段val1和val2中而不刷新页面时,outputText元素自动更改其值。 结果变量应以这种方式计算(它正在计算百分比):(val1 * val2)/ 100 您能帮我解决我的一
2回复

如何在不删除 java 中的任何旧数据的情况下向 .txt 文件添加新信息 [重复]

这个问题在这里已经有了答案: 如何将文本附加到 Java 中的现有文件? (31 个回答) 11 个月前关闭。
2回复

将所有尝试记录到Java中的.txt文件

我正在尝试编写一个简单的登录应用程序,该应用程序记录所有登录到.txt文件的尝试。 目前,我的应用程序只会记录上一次尝试的时间。 有指针吗? 这是我的一些代码: