错误是客户具有不同的ID,但在ArrayList类的readCustomer对象中,唯一保存的ID是最后一个客户的ID.
//reads customer data from register.txt file
//has 2 string as arguments
//returns a ArrayList object with all the customer with the same name
public ArrayList<Customer> readCustomer(String name,String surname){
Customer temp = new Customer();
//will hold all the customers with the same name and surname
ArrayList<Customer> readCustomer = new ArrayList<Customer>();
try{
FileInputStream fstream = new FileInputStream("register.txt");
BufferedReader fbr = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = fbr.readLine()) != null) {
String line[];
line = strLine.split(" ");
if(name.equals(line[1]) && surname.equals(line[2])){
temp.setCustomerID(Integer.parseInt(line[0]));
temp.setName(line[1]);
temp.setSurname(line[2]);
temp.setAddress(line[3]);
temp.setAge(Integer.parseInt(line[4]));
readCustomer.add(temp);
}
}
fbr.close();
}
catch(Exception ex){*emphasized text*
System.out.println(ex.getMessage());
}
return readCustomer;
}
Run Code Online (Sandbox Code Playgroud)
在每次迭代时创建一个新对象,而不是一个可以逐渐填充的对象.另外,学习理解对象引用.
while ((strLine = fbr.readLine()) != null) {
Customer temp = new Customer();
// and so on
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |