AddLF.java のwhileの中、しかも outb.write( c ) の後にifが入らなくては"。"の後に改行にはなりません。
読んだ文字が"。"かどうかは System.out.println(c) で調べておくのが簡単です。"。"だったら、outb.newLine() で改行を入れるわけです。
int c; while ((c = inb.read()) != -1) { outb.write( c ); //System.out.println(c); //if ( c == 12290 ) { if ( c == Character.codePointAt("。",0){ outb.newLine(); } }
//System.out.println(c) は、"。"のコードポイントを調べた名残です。
みかん、りんご、ぶどう、れもん、だいこん、にんじん はくさい、いちご、めろん、すいか
を、次のようにするプログラムを作ります。
みかん りんご ぶどう れもん だいこん にんじん はくさい いちご めろん すいか
"。" が "、" に代わっていますが、加えて "、" そのものは消えてなくなっているというところがポイントです。たぶん、if( ) ~ else ~
という構文が必要になるでしょう。
以下のは先ほどの AddLF.java の核心部分です。
int c; while ((c = inb.read()) != -1) { outb.write( c ); //System.out.println(c); if ( c == Character.codePointAt("。",0) ) { outb.newLine(); } }
当然 outb.write( c ); はこの場所ではいけません。"、"だったら書かないわけですから、"、"でない時だけ outb.write( c ); するという風にします。
そして、"、"だった時には outb.newLine(); するということになります。
また、Character.codePointAt("。",0) は"。"のコードポイントです。"、"のコードポイントと比較するように変える必要があります。
ファイル名を忘れずに変えます。
FileReader in = new FileReader("kaigyou3.txt"); BufferedReader inb = new BufferedReader(in); FileWriter out = new FileWriter("kaigyou4.txt"); BufferedWriter outb = new BufferedWriter(out);
上記の AddLF2.java をつくり実行してみなさい
適当なテキストファイル kaigyou3.txt を作って、実行し、kaigyou4.txt ができていることを確認しなさい。
kaigyou4.txtをエディタで開いて内容を確認しなさい。
うまくいってなければ、AddLF2.java にもどってもう一度考え直します。