2017-02-10 15 views
0

私は学校の課題をしています(私は残念ながらサードパーティのライブラリを使用できません)。目標はcsvファイルを配列に読み込み、別の方法で処理し、別の場所に印刷します。これは私がこれまで持っているものですが、私はエラーを取得する:ここでJavaファイルの配列への読み込みエラー

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() { 

} 
+1

'Bank.add(line.split("、 "));' – Andreas

+1

'Arrays.asList()'は 'String []'から 'List 'に変換しています。 'bank.addAll()'は 'List 'を期待しています。たぶん、あなたは 'bank.add(line.split("、 "))'を呼び出すことを意味しますか? – shmosel

答えて

0

ArrayList<String[]> bankアレイのリストなので、代わりに

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

を行うのあなただけの分割方法について

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

HereのJavadocを行う必要があり、それリストに追加する必要がある配列Stringを返します。

0

リストbankの各エントリは、Stringです。しかし しかし

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

このラインであなたはaddAllを使用してbankに文字列List<String>のリストを追加しようとしています。しかし、addAllを使用する場合は、List<String []>を追加する必要があります。 line.split(",")として

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

Stringの配列を返します。 あなたの問題への小さな修正プログラムがあります。 あなたは行くのが良いです。

関連する問題