本文介绍了Java从csv文件读取并将其信息存储到ArrayList< class>中.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Java新手,我需要一些帮助

I'm a java newbie and I need a some help

所以这是我的主要方法:

so here is my main method:

RegistrationMethods dmv = new RegistrationMethods();
ArrayList<CarOwner> ItState = new ArrayList<CarOwner>();
dmv.processTextToArrayList(ItState);

,我有一个名为CarOwner的类,它具有用于firstName, lastName, license, month, year实例变量的获取器和设置器.

and I have a class called CarOwner and it has getters and setters for firstName, lastName, license, month, year instance variables.

这是我的processTextToArrayList方法的方法头:

And this is my method header for processTextToArrayList method:

public void processTextToArrayList(ArrayList<CarOwner> inList) throws IOException

该方法应该将新的CarOwner对象添加到传入的inList CarOwner集合中.对于csv文件的每一行,都会在inList中添加一个CarOwner对象.

this method is supposed to add new CarOwner objects to the inList CarOwner collection passed in. For each line of the csv file, a CarOwner object is added to inList.

我必须从csv文件读取到arraylist我的csv文件包含以下内容:

I have to read from csv file into arraylistmy csv file contains something like:

Bunny Bugs ACB-123 5 2013

Bunny Honey DEF-456 9 2013

Bunny Lola GHI-789 3 2014

如何使用while循环对此进行编码?

how do I code this using while loop?

我的CarOwner类是:

my CarOwner class is :

public class CarOwner extends Citizen implements CarOwnerInterface, Serializable
{
private String license;
private int month, year;

public CarOwner()
{
    super();
    license = "Not Assigned";
    month = 0;
    year = 0;
}

public CarOwner(String inFirst, String inLast, String inLicense, int inMonth, int inYear)
{
    super(inFirst, inLast);
    license = inLicense;
    month = inMonth;
    year = inYear;
}

public void setLicense(String inLicense)
{
    license = inLicense;
}

public String getLicense()
{
    return license;
}

public void setMonth(int inMonth)
{
    month = inMonth;
}

public int getMonth()
{
    return month;
}

public void setYear(int inYear)
{
    year = inYear;
}

public int getYear()
{
    return year;
}

public int compareTo(Object o)
{
    if ((o != null ) && (o instanceof CarOwner))
    {
        CarOwner otherOwner = (CarOwner) o;
        if (otherOwner.compareTo(getYear()) > 0)
            return -1;
        else if (otherOwner.compareTo(getYear()) < 0)
            return 1;
        else if (otherOwner.equals(getYear()))
            if (otherOwner.compareTo(getMonth()) > 0)
                return -1;
            else if (otherOwner.compareTo(getMonth()) < 0)
                return 1;
            else if (otherOwner.equals(getMonth()))
                return 0;
    }
    return -1;
}

}

我的公民班也是:

public class Citizen implements CitizenInterface, Serializable
{
private String firstName, lastName;

public Citizen()
{
    firstName = "No Name";
    lastName = "No Name";
}

public Citizen(String inFirstName, String inLastName)
{
    firstName = inFirstName;
    lastName = inLastName;
}

public void setFirstName(String inFirst)
{
    firstName = inFirst;
}

public String getFirstName()
{
    return firstName;
}

public void setLastName(String inLast)
{
    lastName = inLast;
}

public String getLastName()
{
    return lastName;
}

public String toString()
{
    String str;

    str = firstName + " " + lastName;

    return str;
}

推荐答案

您可以使用类似的方法,并提供要从中读取文件的路径.这将创建一个扫描程序以读取传入的文件.

You could use a method like this and provide the path to the file you wish to read from.This creates a Scanner to read from the file passed in.

它一次抓取每一行,并向结果数组添加一个新的CarOwner(String,String,String,String,String)对象.

It grabs each line one at a time and adds a new CarOwner(String,String,String,String,String) object to the result array.

P.S.我不知道您对CarOwner的实现,所以我只使用了所有Strings ...我会留给您找出答案.

P.S. i have no idea your implementation of CarOwner so i just used all Strings... I'll leave that to you to figure out heh.

public ArrayList < CarOwner > processTextToCarOwnerList(String filePath) throws IOException {
    ArrayList < CarOwner > result = new ArrayList < CarOwner > ();
    Scanner scan = new Scanner(new File(filePath));
    while (scan.hasNextLine()) {
        String line = scan.nextLine();
        String[] lineArray = line.split(" ");
        result.add(new CarOwner(lineArray[0], lineArray[1], lineArray[2], lineArray[3], lineArray[4]));
        }
        return result;
    }

这篇关于Java从csv文件读取并将其信息存储到ArrayList&lt; class&gt;中.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-29 01:00