java读取文件并显示用户搜索

java读取文件并显示用户搜索,java,java.util.scanner,Java,Java.util.scanner,我是java新手,我正在尝试获取文件的内容,类型为contents 用户姓名:出生日期:国籍 我想询问用户要查找哪个名称,名称应该搜索第一个字段,然后再次询问dob并获得结果,依此类推 import java.io.File; import java.util.Scanner; public class ReadFile { public static void main(String[] args) { try {

我是java新手,我正在尝试获取文件的内容,类型为contents

用户姓名:出生日期:国籍

我想询问用户要查找哪个名称,名称应该搜索第一个字段,然后再次询问dob并获得结果,依此类推

   import java.io.File;
   import java.util.Scanner;

   public class ReadFile {

        public static void main(String[] args) {


            try {
                Scanner input = new Scanner(System.in);
                System.out.print("Enter the file name with extention : ");
                File file = new File(input.next());

                input = new Scanner(file);
                String newInput = input.nextLine();


                while (input.hasNext()) {
                    String line = input.next();
                    String delims = "[:]"; 
                    String[] tokens = line.split(delims);
                    System.out.println(tokens);


                }
                input.close();

            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.print("Error Occured ");
            }

        }

    }

如何显示搜索。

您需要获取目标名称和dob,然后在
循环中尝试查找该记录

import java.io.File;
import java.util.Scanner;

   public class ReadFile {

    public static void main(String[] args) {

        String dob="",name="";

        try {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter the file name with extention : ");
            File file = new File(input.next());

            //get person name and dob to search for:
            System.out.print("Enter Person name : ");
            name = input.next();

            System.out.print("Enter Person DOB : ");
            dob = input.next();

            input = new Scanner(file);
            String newInput = input.nextLine();
            boolean found = false;

            while (input.hasNext()) {
                String line = input.next();
                String delims = "[:]"; 
                String[] tokens = line.split(delims);

                //check if this line matches target record
                if(tokens[0].equals(name) && tokens[1].equals(dob)){
                    System.out.println(String.format("Found Record, name: %s DOB: %s Nationality: %s",tokens[0],tokens[1],tokens[2]));
                    found=true;//mark as a record found
                    //no need to loop further
                    break;
                }
            }//while loop

            if(!found){
                System.out.println("No match records found!");
            }
            input.close();

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.print("Error Occured ");
        }

    }

}

解析文件内容后,将每行中的标记存储到列表数据结构中。稍后使用此列表进行搜索。已移动
未找到匹配记录循环外,根据找到的标志显示消息