2017-12-09 14 views
-1

私はセパレータタブを持つcsvファイルを持っており、値を持つ各行を変更します。この場合の参考資料はありますか?私はすでにGoogleで検索していますが、私は良いリファレンスを得ることができません。ベストプラクティスは何ですか?どのようなライブラリのJavaは、この場合に簡単に使用する?例えば私はcsvファイルを持っている含まれています最後の列をCSVファイルに追加

value1 value2 value3 
value4 value5 value6 
value7 value8 value9 

と私はなっ変更したい:

value1 value2 value3 new_value1 
value4 value5 value6 new_value2 
value7 value8 value9 new_value3 

と私のcsvファイルは約10.000行を持っています。各行を効果的に変更するにはどのようなロジックが必要ですか?ありがとう。

+0

ファイルを一列に並べて読み込み、追加の列でもう一度書き込んで、新しいファイルに書き出します。 – cello

答えて

0

あなたは単にあなたがBufferedReaderのとBufferedWriterのを使って、次のような何かを行うことができ、それぞれの行を変更し、タブ区切りに新しい列を追加する場合: -

BufferedReader br=null; 
BufferedWriter bw=null; 

try { 
    File file = new File("csv file path"); 
    File newfile = new File("new output csv file path"); 

    br = new BufferedReader(new InputStreamReader(new FileInputStream(file))) ; 
    bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newfile))); 

    String line = null; 

    while((line = br.readLine())!=null){ 
     String addedColumn = "\t"+"newstring"; 
     bw.write(line+addedColumn+System.lineSeparator()); 
    } 
} catch(Exception e){ 
    System.out.println(e); 
} finally { 
    br.close(); 
    bw.close(); 
} 

あなたの新しい列のテキストが変更された場合すべての行で、このコードを適宜変更してください。お役に立てれば。

+0

これはうまくいかがでしたが、各行に値を設定する方法はありますか?私はこのコードを試しているので、各行の値は同じです。私はそれぞれの行ごとに異なる値が必要です。 –

+0

とcsvの行数を取得する方法は? –

+0

変数を初期化し、String addedColumn = "\ t" + "newstring" +変数に追加します。それを増分します。 –

0

私はthisライブラリを使用しており、かなり満足していました。

一例tutorialの使い方はこちらです。

行ごとにcsvを読み取り、新しい列を追加して新しいcsvに書き込みます。がんばろう!

関連する問題