将信息从文件移动到ArrayList

时间:2014-03-06 03:28:03

标签: java swing arraylist

当我尝试将数据从textfile移动到arraylist时,我在行data.add(row)上得到错误; (找不到合适的方法)我该如何解决?如果我想用它来填充java jtable(swing),那么使用arraylist是个好主意吗?

 public ArrayList<String> getinformationforthetable() {
    Scanner s = null;
    ArrayList<String> data = new ArrayList<String>();
    try {
        s = new Scanner(new File("info.txt"));
        while (s.hasNextLine()) {
        String line = s.nextLine();
        if (line.startsWith("")) {
            String[] atoms = line.split("[#]");
            ArrayList<String> row = new ArrayList<String>();
            row.add(atoms[0]);
            row.add(atoms[1]);
                    row.add(atoms[2]);
                    row.add(atoms[3]);
                    row.add(atoms[4]);
                    row.add(atoms[5]);
            data.add(row);

        }
        }
    }
    catch(IOException e) {
        e.printStackTrace();    
    }
    finally {
        if (s != null) {
        s.close();
        }
    }
    return data;
    }
}

3 个答案:

答案 0 :(得分:5)

此错误是由于您的数据数组列表是字符串的数组列表

  ArrayList<String> data = new ArrayList<String>();

并且您正在尝试向其添加另一个数组列表。你应该把它改成

  List<List<String>> data = new ArrayList<List<String>>();

希望这有帮助。

答案 1 :(得分:4)

您正在尝试将List值添加为String。它不允许添加。列出具有addAll()的默认方法,以将列表值添加到mainList

data.add(row);

而不是

data.addAll(row);

答案 2 :(得分:3)

data被视为期待String值,但您正在为其添加ArrayList String ...

ArrayList<String> data = new ArrayList<String>();
//...
ArrayList<String> row = new ArrayList<String>();
data.add(row);

根据您想要实现的目标并基于示例代码,您应该执行更多类似...

的操作
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();

如果您希望能够将row ArrayList添加到data ArrayList ...