Java - 文件读入数组错误

时间:2017-02-10 22:20:00

标签: java io

我正在为学校做作业(所以我很遗憾不会使用第三方库),目标是将csv文件读入数组,以不同的方法处理,然后将其打印到另一个数组中。这就是我到目前为止所得到的错误:

Type mismatch: cannot convert from List<String> to Collection<? extends String[]>. 

这是我的代码:

package client.java;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public abstract class Client{

String file = "bank-Detail.csv";
ArrayList<String[]> bank = new ArrayList<>();

public Client(String file) {
    this.file = file;
}

public void readData() throws IOException { 
    int count = 0;
    String file = "bank-Detail.txt";
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line = "";
        while ((line = br.readLine()) != null) {

            bank.addAll(Arrays.asList(line.split(",")));

该行(Arrays.asList(line.split(“,”)));是我得到错误的地方。

            String[] entries = line.split(",");

            String[][] numbers = (String[][]) bank.toArray(new String[bank.size()][12]);

        }
    } catch (FileNotFoundException e) {

    }
}

public void processData() {


}

public void printData() {

}

2 个答案:

答案 0 :(得分:0)

ClientID是一个数组列表,所以不是做

ArrayList<String[]> bank

你只需要做

bank.addAll(Arrays.asList(line.split(",")));

Here用于split方法的javadoc,它返回一个bank.add(line.split(","));数组,这是我们需要添加到列表中的内容。

答案 1 :(得分:0)

您的列表bank的每个条目都是String的阵营。但 但是在这一行

bank.addAll(Arrays.asList(line.split(",")));

您正尝试使用List<String>bank添加字符串addAll的列表。但是,如果您想使用addAll,则必须添加List<String []>。 您的问题有一个小问题:

bank.add(line.split(","))

由于line.split(",")将返回String的数组。 你很高兴。