5

配列要素をcsvファイルにエクスポートするのに助けが必要です。コードの何が問題なのかわかりません。どんな助けでも喜んで感謝します。ありがとう。

for (int index = 0; index < cols.length; index++)
{
    FileWriter fw = new FileWriter(newFileName);
    if (index == cols.length - 1)
    {
        fw.append(cols[index]);
    }
    else
    {
        fw.append(cols[index]);
        fw.append(",");
    }

}

これを実行すると。csvファイルに何も起こりません。実際、それはすべてを一掃します。助けてください。

4

5 に答える 5

12

配列に文字列を格納していると仮定して、別の解決策を投稿します。

BufferedWriter br = new BufferedWriter(new FileWriter("myfile.csv"));
StringBuilder sb = new StringBuilder();

// Append strings from array
for (String element : array) {
 sb.append(element);
 sb.append(",");
}

br.write(sb.toString());
br.close();

よろしくお願いします。

于 2013-03-12T14:52:32.097 に答える
4

書き込まれたデータをフラッシュする必要がある場合は、 FileWriterを閉じます。

      finally {
        fw.close(); // close will automatically flush the data 
      }

また、代わりにBufferedWriterまたはPrintWriterを使用してください。これらは非常に効率的で、 FileWriterよりも進化しています。

ところで、 for ループの外で FileWriter を宣言します。現在、反復ごとに列を上書きします。

于 2013-03-12T14:45:37.153 に答える
2

より効果的な BufferedWriter を try-with-resources と組み合わせて使用​​すると、ライターは自動的に閉じられます。(Java 7)

try {BufferedWriter br = new BufferedWriter(new FileWriter(newFileName)) {
    // your code
}
于 2013-03-12T14:54:49.127 に答える
0

あなたは使用する必要があります

 FileWriter fw = new FileWriter(newFileName,true);

コンテンツを追加しないと、ファイルが上書きされます。

メソッドの名前はappend誤解を招く可能性があります。実際、ファイルの内容ではなく、内部バッファーに追加されます。

于 2013-03-12T14:49:36.477 に答える