2017-09-27 29 views
2

2次元配列を持つプログラムがあり、csvファイルに書き込む必要がありますが、配列のインデックスを1つ書くだけで済みます。私は.get(0).set(4、newAmount)を使って最初のインデックスの値を設定していますが、意味があればインデックスのすべての値をファイルに書き込む必要があります。2d配列をcsvファイルに書き込む

  fw = new FileWriter(FILE_NAME, true); 
     bw = new BufferedWriter(fw); 

     System.out.println("Enter the name of the person you want to change amount for"); 
     String changeName = FileUtility.getInput().nextLine(); 
     String newAmount; 



     Scanner s = new Scanner(new File(FILE_NAME)); 
     String str = ""; 
     List<List<String>> list = new ArrayList<List<String>>(); 

     while (s.hasNext()) { 
     list.add(Arrays.asList(s.nextLine().split(","))); 
} 

if (list.get(0).get(0).equalsIgnoreCase(changeName)) { 
    System.out.println("Enter the new amount paid for the player"); 
    newAmount = FileUtility.getInput().nextLine(); 
    list.get(0).set(4, newAmount); 
    //write to csv file here 

答えて

0

コードの下にこのコードを挿入します。

String csv = list.stream() 
    .map(row -> row.stream() 
     .map(col -> col.toString()) 
     .collect(Collectors.joining(", "))) 
    .collect(Collectors.joining("\n")); 
writer.write(csv); 
+0

が動作しない、それはちょうどあなたがスキャンしたファイルは空の値を有することを意味@RyanBlanchard –

+0

を存在していたファイル内のすべての内容を削除しました? – kangtaku

関連する問題