【发布时间】:2013-05-28 08:05:47
【问题描述】:
我需要将 CSV 文件读入对象数组。 我没有意识到它必须进入一个,而只是做了一个 ArrayList 。我现在需要解决这个问题,但不知道我在做什么。
这是我将 CSV 文件读入多维数组的代码。
public static void readClub() throws IOException {
BufferedReader clubBR = new BufferedReader(new FileReader(new File("nrlclubs.txt")));
String line = "";
ArrayList<String[]> clubsArr = new ArrayList<String[]>();
while ((line = clubBR.readLine()) != null) {
String[] club = new String[3];
for (int i = 0; i < 3; i++) {
String[] value = line.split(",", 3);
club[i] = value[i];
}
clubsArr.add(club);
}
我的 CSV 文件的 sn-p 是这样的:
Glebe,G Shield,Glebe District
Cumberland,C Shield,Central Cumberland
Annandale,A Shield,Annandale District
University,Lion,Sydney Uni Rugby League Club
Souths,Rabbit,South Sydney,Rabbitohs
Easts,Rooster,Eastern Suburbs,Roosters,Sydney Roosters
Balmain,Tiger,Tigers,Balmain Tigers
Newtown,Jets,Jets,Newtown Jets,Bluebags
第一个词是队名,第二个词是队吉祥物,其余是别名。
现在的问题是,我该如何做同样的事情,但使用一个对象数组(在一个名为 Clubs 的类中)? 我只是花了几个小时试图让这个工作,只是被告知它是错误的,并且对象数组正在做我的头脑:'(
谢谢大家!
编辑: 好的,实际的问题是这样的: 程序应将数据文件 (NRLclubs.txt) 的内容读入内存,并放入适当的对象数组中(有关类的描述,请参见上一页)。不要假设文件存在。
类的描述是这样的: 俱乐部类:俱乐部类代表比赛中的单个 NRL 俱乐部。 Club 类需要存储当前俱乐部名称、当前俱乐部吉祥物、俱乐部已知或已知的任何别名的数据。除了应该为类创建的常规方法(例如,构造函数、“setters”和“getters”)之外,您还需要根据分配规范的一般要求为此类确定适当的方法。
【问题讨论】:
-
我不太明白:你希望变量 clubsArr 是 Object 数组而不是 ArrayList 吗?还是别的?
-
您想从文件中读取数据并将其保存到对象数组中吗?请更具体。
-
为了更优化的代码,
String[] value = line.split(",", 3);应该在for之外,不需要每次都拆分。其实整个for是不需要的,clubsArr.add(value);就可以了。 -
是的,我想摆脱 Arraylist 并将其读入对象数组。我以前从未使用过对象数组,所以我不知道自己在做什么。任何帮助将不胜感激:)
标签: java arrays class object csv