在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的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中

java使用poi读取excel时,因一些格式问题,执行excel函数错误

Java 添加读取和删除 Excel 批注

java中JFrame按钮添加事件,选择路径放到文本框里面

Java 操作Word书签:添加文本图片表格到书签内容

java对文本文件进行操作:读取修改添加删除重命名等