以下で以前に作成した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;
}