gpt4 book ai didi

java - 使用 JFileChooser 打开 txt 文件并填充 ArrayList

转载 作者:行者123 更新时间:2023-12-01 09:58:29 25 4
gpt4 key购买 nike

我有一个包含 ID、名称、地址和状态实例变量的 Person 类

  • ID 没有 setter(mutator) 方法
  • 名称、地址和状态实例变量都有 setter 和 getter 方法-读取的txt文件以逗号分隔

我想使用 JFileChooser 打开一个 txt 文件,然后通过在线读取来填充 Person 类类型 ArrayList。我堆积起来将读入的 ID 设置为 Person 对象这是读入并填充数组列表的方法

public static ArrayList<Person> load(String fileName) throws IOException {
ArrayList<person> lines = null;
BufferedReader reader;
try {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Load which file?");
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
if (file != null) {
fileName = file.getCanonicalPath();
reader
= new BufferedReader(new FileReader(fileName));
lines = new ArrayList<>();

String line = reader.readLine();
String data[];
while ((line = reader.readLine()) != null) {
data = line.split(",");
Person s = new Person();


s.setName(data[0]);
s.setAddress(data[1]);
s.setState(data[2]);

//I got stack how to set ID bcs it has no set method

s.getAddress();
s.getName();
s.getState();

lines.addAll(Arrays.asList(s));
}
reader.close();
return lines;
}
}

} catch (FileNotFoundException exp) {
exp.printStackTrace();
} catch (IOException exp) {
exp.printStackTrace();
}
return lines;
}

}

最佳答案

如果您决定在分配 ID 后不想更改 ID,则可以重载类构造函数,如下所示

public Person(int id){
this.id = id;
}

然后在你的方法中做类似

data = line.split(",");
Person s = new Person(whatever_if_you_wanana_set);

关于java - 使用 JFileChooser 打开 txt 文件并填充 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com