前提・実現したいこと
JavaでCSVファイルを編集して別ファイルに出力するプログラムを作成しています。
今回はBufferdReaderのreadLineメソッドで読み込み、指定した文字列のみを含む行であった場合
都度書き込みメソッドを呼び出したいです。
書き込めメソッド;指定された文字列を含む行を「,」区切りで新しいファイルに書き出す。
読み込みファイルイメージ(※数字に特に意味はありません)
名前:山田太郎,,,,,,,,
日付け,曜日,,食事,,,,,
9月1日,火,納豆,2.5,親子丼,3.5,焼き肉,0.5
9月2日,水,納豆,3.5,親子丼,4.5,焼き肉,1.5
9月3日,木,納豆,4.5,親子丼,5.5,焼き肉,2.5
9月4日,金,納豆,5.5,親子丼,6.5,焼き肉,3.5
,,,,,,,,
↓
出力イメージ
名前:山田太郎
9月2日
水
納豆
3.5
親子丼
4.5
焼き肉
1.5
・・・・
該当のソースコード
Java
ソースコード
import java.io.*; import java.util.*; public class Test{ public static void main(String [] args){ String line; String[] data; BufferdReader reader = null; BufferdWriter writer = null; try{ reader = BufferReader reader(new FileReader("Week.csv")); writer = BufferWriter writer(new FileWriter("NewWeek.csv")); while((line = reader.readLine()) ! = null){ if(line.contains("氏名")){ create(line); }else if(line.contains("月")){ create(line); }else if(line.contains("水")){ create(line); }else if(line.contains("金")){ create(line); } } //メソッド static void create(line){ data = line.split(","); for(int i = 0; i < data.length; i++){ writer.write(data[i]); writer.newLine(); } } }catch(IOExeption e){ }finally{ try(reader ! = null){ reader.close(); }catch(IOException e){} try(writer ! = null){ writer.close(); }catch(IOException e){} } } }
発生している問題・エラーメッセージ
メソッドがうまく呼び出せていません。
試したこと
メソッドを書く場所を変えたりしましたが変化ありませんでした。
そもそものメソッドに問題があるのかもよく理解できていません。
ヒントをいただけると幸いです。
回答1件
あなたの回答
tips
プレビュー