我在将文本文件读入具有多种数据类型的arraylist时遇到了问题。
文件格式如下:
Name1 900 20
Name2 750 30
Name3 880 25
Name4 260 15
我的列表格式为name + score + age
,我不知道如何正确地将txt中的数据存储到列表中。我还想在添加一些数据后重写文件。
答案 0 :(得分:2)
您可以创建一个封装name + score + age的类,并创建该类的ArrayList
。
答案 1 :(得分:2)
如果你的List接受字符串:
BufferedReader reader = new BufferedReader(new FileReader("yourfile.txt"));
List<String> list = new ArrayList<>();
String line=null;
while((line= reader.readLine())!=null) {
list.add(line);
}
然而,如果你有一个名为name,socre和age作为属性的类,并且创建该类的列表并用白色空格分割你的文本文件,那就更好了。
class SomeClass {
private String name;
private long score;
private int age;
//getters and setters for your properties
}
现在您的列表将是:
List<SomeClass> list = new ArrayList<>();
并在从文件中读取该行后,根据空格将其拆分。
String[] arr =line.split("\\s+");
SomeClass obj = new SomeClass();
obj.setName(arr[0]);
obj.setScore(Long.parseLong(arr[1]));
obj.setAge(Integer.parseInt((arr[2]));
list.add(obj);