我有一个文本文件“addresses.txt”,其中包含有关某人的信息。我创建了一个Person类,我需要读取并将此文本文件中的信息存储到ArrayList中。 我的错误是在尝试读取文本文件时因为String争论而无法将其添加到我的ArrayList中。在这一点上真的输了,我知道这可能是一个简单的解决方案,但我无法弄明白。
如果需要,这是我的一些Person类:
public class Person {
private String firstName;
private String lastName;
private String phoneNumber;
private String address;
private String city;
private String zipCode;
private static int contactCounter = 0;
public Person(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
contactCounter++;
}
public Person(String firstName, String lastName, String phoneNumber){
this.firstName = firstName;
this.lastName = lastName;
this.phoneNumber = phoneNumber;
contactCounter++;
}
public Person(String firstName, String lastName, String address, String city, String zipCode){
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.city = city;
this.zipCode = zipCode;
contactCounter++;
}
这是我的主要课程:
import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;
public class Rolodex {
public static void main(String[] args) {
ArrayList <Person> contactList = new ArrayList <Person> ();
readFile(contactList);
}
public static void readFile(ArrayList <Person> contactList){
try{
Scanner read = new Scanner(new File("addresses.txt"));
do{
String line = read.nextLine();
contactList.add(line); //MY ERROR IS HERE. I know why its happening just not how to fix.
}while(read.hasNext());
read.close();
}catch(FileNotFoundException fnf){
System.out.println("File was not found.");
}
}
答案 0 :(得分:1)
您尝试将String行添加到Person数组中。
你不能将String转换为Person。
修复:尝试实现某种行解析器
例如。您的行"adam;bra;555888666;"
必须使用line.split(";")
解析此字符串
它创建了一个字符串数组(String [])现在只需使用构造函数创建Person并将其添加到contactList中
例如
contactList.add(New Person(parsedString[0], parsedString[1], parsedString[2]));
答案 1 :(得分:0)
您应该使用JSON文件,而不是使用文本文件。使用GSON库,在文件中获取和写入数据更容易......