質問: new FileWriter(file); System.out.print("syainid:"); BufferedWriter br=new BufferedWriter(filewriter); BufferedReader str=new BufferedReader(new InputStreamReader(System.in)); str1=str.readLine(); br.write(str1); } } ``` java ソースコード ``` ### 試したこと ここに問題に対して試したことを記載してください。
回答: 変更があればその都度更新し、CSVファイルを独自のソフトで表示する... みたいなことでしょうか? それなら、『**流れを考えて**』みてください。 ユーザ目線込みで考えると、 ``` ユーザが何か変更する -> csvファイルが変更される ユーザが『〇〇というデータが欲しい』と依頼 -> csvファイルから... ``` ですよね。 特に "ユーザが何か変更" のやつが厄介。 だから、私なら ``` 1. (ユーザがソフトを起動する) 2. csvファイルを読み込む 3. データが編集されたらその部分を修正して『再書き込み』 4. (ユーザがソフトを閉じようとしている) 5. csvファイルに書き込む ``` みたいにしますね。 csvファイルなので、表になっていると考えますね。 もし ``` 社員ID - 名前 - 年齢 - 肩書 - 備考 ``` となっているとしたら、 読み込み時は それぞれをメンバにしたクラス( C言語でいう構造体 ) を用意して、それに入れていく。 ( そしてリスト構造か配列に入れていく... ) ``` public class Employee{ private int id_; // 社員ID private String name_; // 名前 private int age_; // 年齢 private String rank_; // 肩書 private String notes_; // 備考 public Employee( int id, String name, int age, String rank, notes ){ // コンストラクタ. メンバの設定 } public int id(){ return id_; } public void setId( int id ){ id_ = id; } public int age(){ return age_; } public void setAge( int a ){ // a が 0 未満や300以上のような // ありえない値なら省く( つまりそのままreturn. ) age_ = a; } // ほかにもある... } ``` で、動いている間は基本的にこのオブジェクト群を操作する。 変更があればCSVを更新する。(すべて書き込む) みたいにするかな? JavaだとCSVを読み込むクラスとかがあると思うのでちょっと違うかもしれませんが。