Java 使用文件读取器添加到对象数组列表

Java 使用文件读取器添加到对象数组列表,java,arraylist,delimiter,filereader,Java,Arraylist,Delimiter,Filereader,基本上,在这种情况下,我必须让一个公司和一个驱动程序的类彼此交互,这段代码是在驱动程序中编写的。所以我用一个文件阅读器来扫描一个文本文件,它看起来像这样,每行之间有一个空格 约翰:史密斯:制造业:6.75:120:444 贝蒂:怀特:经理:1200.00:111 斯坦:斯利米:销售额:10000.00:332 贝蒂:Boop:设计:12.50:50:244 代码如下。company类的addEmployee方法有一个(string,string,string,double,int,int)参数。

基本上,在这种情况下,我必须让一个公司和一个驱动程序的类彼此交互,这段代码是在驱动程序中编写的。所以我用一个文件阅读器来扫描一个文本文件,它看起来像这样,每行之间有一个空格

约翰:史密斯:制造业:6.75:120:444

贝蒂:怀特:经理:1200.00:111

斯坦:斯利米:销售额:10000.00:332

贝蒂:Boop:设计:12.50:50:244

代码如下。company类的addEmployee方法有一个(string,string,string,double,int,int)参数。它读取的文本文件在每个部分之间都有一个冒号,因此如何将其添加到对象的arraylist中。继续,直到所有的书都读出来。对不起,如果我的问题难以理解,如果你想让我详细说明,请在评论中告诉我。我只是不想把问题提得太长

else if (e.getSource()==readButton){
            JFileChooser fileChooser = new JFileChooser("src");
        if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
        {
            empFile=fileChooser.getSelectedFile();
        }
            Scanner scan = new Scanner("empFile");
            while(scan.hasNext()){
                scan.next().split(":");
                if (position.equals("Manager")){
                    c.addEmployee(fName, lName, position2, Double.parseDouble(firstParam2), 0, Integer.parseInt(empNum2));
                }
                else if(position.equals("Sales")){
                    c.addEmployee(fName, lName, position2, Double.parseDouble(firstParam2), 0, Integer.parseInt(empNum2));
                }
                else{
                    c.addEmployee(fName, lName, position2, Double.parseDouble(firstParam2), Integer.parseInt(secondParam2), Integer.parseInt(empNum2));
                }
            }
这一行:

scan.next().split(":");
将返回未存储在任何位置的
字符串数组。把它变成:

String[] rowData = scan.next().split(":");
并根据需要使用数组中的每个项,例如填充变量或直接作为类构造函数的参数。提供前者的样本:

fName = rowData[0];
lName = rowData[1];
position = rowData[2];
firstParam2 = rowData[3];
secondParam2 = rowData[4];
empNum2 = rowData[5];

你有什么问题?什么是
c
,你的
员工是什么?谢谢,我想这正是我需要的。谢谢你的快速回复。顺便说一句,您在数组中跳过了4…@user3530205如果这是您正在寻找的答案,请不要忘记。