将文件内容读入类对象

我有一个员工条目的文本文件,如下所示:

000, first name1, middle name1 001, first name2, middle name2 002, first name3, middle name3 003, first name4, middle name4 004, first name5, middle name5 

我有一个类Employee如下:

 public class Employee { public int id; public String fName; public String mName; public String lName; } 

我已经将文件的内容读入一个数组。 但我想要的是构造一个Employee类的对象数组,并为每个条目初始化类的每个属性。 像这样的东西:

 Employee e[] = new Employee[5]; 

检查数组中每个对象的详细信息……

 e[0].id = 000 e[0].fName = "first name1" e[0].mName = "middle name1" e[0].lName = "last name1" 

然后,

 e[1].id = 001 

等等…

有什么方法可以做到这一点吗?

 public class Employee { public int id; public String fName; public String mName; public String lName; public Employee(String line) { String[] split = line.split(","); id = Integer.parseInt(split[0]); fName = split[1]; mName = split[2]; lName = split[3]; } } 

因为你已经将文件读入数组(我想是字符串)。

 String[] lines = ....; Employee[] employees = new Employee[lines.length]; for(int i = 0; i < lines.length; i++) { employees[i] = new Employee(lines[i]); } 

你去......你有一系列的员工。

读取文件并逐行循环遍历其内容。 然后解析这些行并在每次迭代中创建一个new Employee() 。 设置您的值,例如id和name。 最后,将新的Employee实例添加到List并继续下一个条目。

 // Read data from file try (BufferedReader br = new BufferedReader(new FileReader(file))) { // List to collect Employee objects List employees = new ArrayList(); // Read file line by line String line = ""; while ((line = br.readLine()) != null) { // Parse line to extract individual fields String[] data = this.parseLine(line); // Create new Employee object Employee employee = new Employee(); employee.id = Integer.valueOf(data[0]); employee.fName = data[1]; employee.mName = data[2]; // Add object to list employees.add(employee); } // Further process your Employee objects... } 

此外,还有CSV库可以处理读取具有逗号分隔值的文件的所有令人讨厌的部分。 例如,我建议使用OpenCSV 。

这里已经发布了答案,但我还是会发帖…

 package com.stackoverflow.java.test; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Employee { public int id; public String fName; public String mName; public Employee(int id, String fName, String mName) { this.id = id; this.fName = fName; this.mName = mName; } public static void main(String[] args) throws IOException { Employee[] e = new Employee[5]; FileReader fr=new FileReader("YourDoc.txt"); BufferedReader br=new BufferedReader(fr); String line=""; String[] arrs=null; int num=0; while ((line=br.readLine())!=null) { arrs=line.split(","); e[num] = new Employee(Integer.valueOf(arrs[0]), arrs[1], arrs[2]); num++; } br.close(); fr.close(); for(int i=0 ; i< e.length; i++) { System.out.println(e[i].id + " and " + e[i].fName + " and " + e[i].mName); } } 

}

尝试:

 public static void main(String[] args) throws IOException { File f1 = new File("d:\\data.txt"); Scanner scanner = new Scanner(f1); List empList=new ArrayList<>(); while(scanner.hasNextLine()){ String data[]=scanner.nextLine().split(","); empList.add(new Employee(Integer.parseInt(data[0]),data[1],data[2],data[3])); } scanner.close(); System.out.println(empList); } 

Employee.java

  class Employee{ public int id; public String fName; public String mName; public String lName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getfName() { return fName; } public void setfName(String fName) { this.fName = fName; } public String getmName() { return mName; } public void setmName(String mName) { this.mName = mName; } public String getlName() { return lName; } public void setlName(String lName) { this.lName = lName; } public Employee(int id, String fName, String mName, String lName) { super(); this.id = id; this.fName = fName; this.mName = mName; this.lName = lName; } @Override public String toString() { return "Employee [id=" + id + ", fName=" + fName + ", mName=" + mName + ", lName=" + lName + "]"; } }