Java如何读取文本文件并将其输入到不同的ArrayLists中

时间:2016-11-15 12:00:50

标签: java file arraylist text

我对如何读取整数的文本文件并将它们作为整数放入不同的ArrayLists感到困惑。它们用空格分隔并填充3行。

例如,文本文件将具有:
1 2 3 4
5 4 3 2
3 7 8 5

我想把每一行放到一个ArrayList中,所以
list [0] = [1,2,3,4]
list [1] = [5,4,3,2]
list [2] = [3,7,8,5]

我目前的代码只能获得一行,我不知道如何处理它,只需要一些指导。谢谢。

我的代码:

  ArrayList<Integer> s1 = new ArrayList<Integer>();
  ArrayList<Integer> s2 = new ArrayList<Integer>();
  ArrayList<Integer> s3 = new ArrayList<Integer>();
  String line = null;

  while ((line = bufferedReader.readLine()) != null) {
    s1.add(new Integer(line));
    s2.add(new Integer(line));
    s3.add(new Integer(line));
  }

结果应该是一个List,其中包含整数列表中的每一行

3 个答案:

答案 0 :(得分:1)

首先,您需要能够读取一行并将结果插入List

String line = "1 2 3 4";
String[] array = line.split(" "); //Split the String one each Space and have the result into an Array
ArrayList<Integer> list = new ArrayList<>();
for(String value : array){ //Read the array, String by String
    list.add(Integer.valueOf(value)); //Parse and insert into the list
}

此处,list将包含一行。 然后,您需要将此结果插入主列表。

ArrayList<ArrayList<Integer>> fileList = new ArrayList<>();

while ((line = bufferedReader.readLine()) != null) {
    // split the line
    fileList.add(list);
}

完整代码如下:

ArrayList<ArrayList<Integer>> fileList = new ArrayList<>();

while ((line = bufferedReader.readLine()) != null) {
    String[] array = line.split(" ");
    ArrayList<Integer> list = new ArrayList<>();
    for(String value : array){
        list.add(Integer.valueOf(value));
    }

    fileList.add(list);
}

这是一个没有在这里写的测试代码,但这应该是正确的。

我已逐步写下这个答案来解释当时如何处理一个问题;)

答案 1 :(得分:0)

ArrayList<ArrayList<Integer>> s1 = new ArrayList<ArrayList<Integer>>();
        String line = "";
        while ((line = bufferedReader.readLine()) != null) {
            String[] numbers = line.split(" ");
            ArrayList<Integer> ints = new ArrayList<Integer>();
            for (String str : numbers) {

                ints.add(Integer.parseInt(str));
            }
            s1.add(ints);
        }

这会给你一个充满了整数类型的arraylists的arraylist,用每行的值填充

答案 2 :(得分:-1)

此代码读入每个单词并将其放入ArrayList:

Scanner s = new Scanner(new File("filepath"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
//As we need to add multiple tokens seperately
list.addAll((s.next()).split(" "));
}
s.close();

我们也可能需要解析它,同时按照建议将String转换为Integer。