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

时间:2014-04-25 23:24:58

标签: java arraylist delimiter filereader

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

  

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

     

贝:白色:管理器:1200.00:111

     

斯坦:粘糊糊:销售:10000.00:332

     

贝:布普:设计:12.50:50:244

代码如下。公司类的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));
                }
            }

1 个答案:

答案 0 :(得分:0)

这一行:

scan.next().split(":");

将返回您未在任何地方存储的String数组。把它变成:

String[] rowData = scan.next().split(":");

并根据需要使用数组中的每个项目,例如填充变量或直接作为类构造函数的参数。提供前者的样本:

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