簡體   English   中英

如何將文本文件中的值讀取到Java中的哈希圖中?

[英]How to read values from a text file into hashmap in Java?

我創建了類Patient (pojo),在其中聲明了變量。

我添加了getter和setter方法,以及構造函數:

 public class Patient {
    private String patientName;
    private String phoneNumber;
    private  int age;

    //generate getter and setter method
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getPhoneNumber() {
        return phoneNumber;
    }
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    //generate constructor
    public Patient(String patientName, String phoneNumber, int age) {
        this.patientName = patientName;
        this.phoneNumber = phoneNumber;
        this.age = age;
    }
}

我已經創建了PatientDetails接口,並在Hospital類中實現了方法。

public interface PatientDetails {
    public void addpatient();
    public void refreshPatient()throws IOException; 
}

這是方法的實現方式:

    public class Hospital implements PatientDetails {`
Scanner scan = new Scanner(System.in);
    int token = 0;
    String name, mobileNumber;
    static HashMap<Integer, Patient> map = new HashMap<Integer, Patient>();
    File file = new File("E:\\Patient\\pt.txt");
    int age;

    public void addpatient() {

        BufferedWriter bufferedWriter = null;
        FileWriter fileWriter = null;
        try {
            // true = append file
            // write a data in a file
            fileWriter = new FileWriter(file, true);
            bufferedWriter = new BufferedWriter(fileWriter);

            System.out.println("Enter the name");
            scan.nextLine();
            name = scan.nextLine();

            System.out.println("Enter Mobile number must be 10 digit");
            mobileNumber = scan.nextLine();

            System.out.println("Enter the age");
            age = scan.nextInt();


            bufferedWriter.write("TokenNumber:" + token + "," + "PatientName:" + name + ",PhoneNumber:" + mobileNumber
                    + ",Age :" + age + ";");
            // for nextline
            bufferedWriter.newLine();
            // close file
            bufferedWriter.close();
            fileWriter.close();
            System.out.println("yours Appoint cofirmed....\nPatient Name: " + name + "\nMobile number: " + mobileNumber
                    + "\nToken number is: " + token + "\nAge is:" + age);
            token++;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            System.out.println("Something went wrong");
            e.printStackTrace();
        }
    }

    @Override
    public void refreshPatient() throws IOException {
        Patient patient=new Patient(mobileNumber, mobileNumber, age);
        String filePath = file.getPath();
        System.out.println("refreshed successfully");

        String line;
        BufferedReader reader = new BufferedReader(new FileReader(filePath));
        map=new HashMap<>();
        while ((line = reader.readLine()) != null) {
            String[] parts = line.split(":", 2);
            if (parts.length >= 2) {
                String key = parts[0];
                String value = parts[1];
                //map.put(Integer.parseInt(key), value);

            } else {
                System.out.println("ignoring line: " + line);
            }
        }

            System.out.println(map);
        reader.close();
    }`)

我已將患者姓名,年齡和手機號碼添加到patient.txt文件中。

當我調用refresh方法時,所有值都應到達地圖,但我沒有將Patient類的值輸入地圖。

如何解決?

你應該分裂,:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM