我有一个包含 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/