以下で以前に作成したRecord2のwriteToメソッド を、BufferedWriterの引数で動作するようにオーバーロードしたメソッド例で示します。
//レコードをテキストで書き出す。 public boolean writeTo(BufferedWriter bw) throws Exception { if (sho.equals(HIGH_VALUE) == true){ return false;//終端を意味するデータは、出力しない。 } bw.write(sho); //書き込み bw.newLine(); //改行書き込み(データの区切り) bw.write(""+suu); //書き込み bw.newLine(); //改行書き込み(データの区切り) return true; }
上記で作成されたファイルから、1レコード読み取るメソッドを作成します。
これを、以下で以前に作成したRecord2のreadFromメソッド
のオーバーロードしたメソッドとして作成した例です。
(BufferedReaderの引数で動作するメソッドとして追加しています)
//レコード読み込み 終端や、失敗時に、shoフィールドへHIGH_VALUEをセット public boolean readFrom(BufferedReader br)throws Exception { if (sho != null && sho.equals(Record2.HIGH_VALUE) == true){ return false;//オブジェクトが終端コードなら読まない。 } sho = br.readLine(); //読み取り String s_suu = br.readLine(); //読み取り if (sho == null || s_suu == null){//読み取れない(終端)? sho = HIGH_VALUE; return false; } suu = Short.parseShort(s_suu);//数値に変換 return true; }