• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストファイルコピープログラムを使って…)

Javaテキストファイルコピープログラムの改良方法

このQ&Aのポイント
  • テキストファイルコピープログラムを使って…と同じプログラムを別の形で作ってみようと思いました。
  • 考えている方法としては、元のプログラムで一文字書く毎に文字数をカウントし、10で割り切れたら改行を入れるという条件を追加したいです。
  • 正しいプログラムの書き方やif文の記入場所について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >if文でcountが10で割り切れたら改行、 >という形にしてみようと思っています。  惜しい!惜しいです。  でも、ずいぶん、いいところまで来ました。  あと、ちょっとです。  countはなにも10で割り切れるか判定する必要はありません。  countが10になったら、改行し、countを0に戻してあげればいいのです。  if文もそのまま続きに書けば、大丈夫です。  後、ヒントとして、改行はBufferedWriterのnewLine()メソッドを使うのがそれぞれのプラットフォームに適した改行コードを入れてくれるので、お得です。

angelicus
質問者

補足

思いつきませんでした! では、全体では import java.io.*; public class CopyText{ public static void main(String[] args) throws IOException { FileReader in = new FileReader("inputtext.txt"); FileWriter out = new FileWriter("outputtext.txt"); int ccode; int count; while ((ccode = in.red()) ! = -1){ out.write(ccode); count=count+1; if (count=10){bw.newLine();, count=0}; } in.close(); out.close(); bw.close(); } } でしょうか? 最後のbw.close()は必要…ですか? また、改行方法としてif (count=10){out.write('\n');, count=0};でも平気ですか? (実は自宅PCは環境が整っておらず、学校に行くまでエラー確認等ができないので、変なところでミスがあるかもしれませんが…)

その他の回答 (1)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.2

 あっ、ごめんなさい。勘違いしてました。  今回は、BufferedReaderとBufferedWriterを使ってないのですね。  混乱させたせいか、前回のコードと今回のコードが混じった変なことになってしまいましたね。  でも、まあ、言いたいことは、わかります。    BufferedWriterを使ってないのでnewLine()メソッドが使えません。よって out.write('\n');  で、いいと思いますが、Writerのwriteメソッドの引数にchar型一文字の物がないので、コンパイラに怒られると思います。  工夫してください。  ただ、OSがWindowsとかだと、\nだけだと改行として反映されません。  できたファイルをメモ帳で、開いてみても、改行されてないので、それが我慢ならない場合は、BufferedWriterを使い、newLine()メソッドで改行することを考えてください。  それと、読み込むデータが小さいときは、FileReaderとFileWriterをそのまま使っても、良いかも知れませんが、ちょっと、大きいデータの時は、BufferedReaderとBufferedWriterをかました方が、断然パフォーマンスがいいので、そちらがおすすめです。  タイプミスや文法間違いも多いですが、それは、コンパイラが指摘してくれます。  考え方はあっているので、あとは、学校に行って、コンパイルエラーと戦ってください。

angelicus
質問者

補足

ありがとうございました。 重ね重ね申し訳ないのですが、改行についてもう一つ、fw.write("\n");というのは使えるのでしょうか。

関連するQ&A