在Java中读取和添加文本文件到Object的ArrayList
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java中读取和添加文本文件到Object的ArrayList相关的知识,希望对你有一定的参考价值。
我有一个文本文件“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.");
}
}
答案
您尝试将String行添加到Person数组中。你不能将String转换为Person。修复:尝试实现某种行解析器,例如。你的行看起来像这个"adam;bra;555888666;"
你必须使用line.split(";")
解析这个字符串它创建你的字符串数组(String [])现在只需使用你的构造函数来创建Person并将他添加到contactList例如。
contactList.add(New Person(parsedString[0], parsedString[1], parsedString[2]));
另一答案
您应该使用JSON文件,而不是使用文本文件。使用GSON库,在文件中获取和写入数据更容易......
以上是关于在Java中读取和添加文本文件到Object的ArrayList的主要内容,如果未能解决你的问题,请参考以下文章
使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中