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

标签 java

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

相关文章:

java - 如何使用 JAVA 在 Spark DataFrame 上调用 UDF?

java - servlet映射 "javax.ws.rs.core.Application"指的是未定义的servlet

java - 如何随机调用方法(Java JDK11)?

java - struts2中如何显示隐藏字段

java - 列表列表上的等于方法

java - 将字符串数组放入 android 中的 ListView 时出错

java - 循环内的 HttpURLConnection

java - 想要创建一个接受鼠标输入的框架并实现drawLines()

java - 推送或拉取通知

java - 使用java获取当前周的剩余日期