Java PrintWriter完全ガイド:機能、メソッド、実践例
Java PrintWriterをマスターする
このチュートリアルでは、JavaのPrintWriterクラス、その印刷メソッド、実践コード例を探求します。
java.ioのPrintWriterクラスは、テキストファイルや他の出力ストリームに文字データを書き込むために設計されています。Writerを拡張し、便利なフォーマットメソッドを提供します。
他のライターと異なり、PrintWriterはプリミティブ型(int、float、charなど)を書き込み前に自動的にテキストに変換します。また、IOExceptionをスローせず、代わりにcheckError()でエラーを検出できます。
自動フラッシュは重要な機能:有効な場合、println()またはprintf()の呼び出しごとにバッファが基盤ストリームにフラッシュされます。
PrintWriterの仕組み
PrintWriterはフォーマット済みテキストを基盤のWriterまたはOutputStreamに書き込みます。コンストラクタはautoFlushフラグと、オプションでエンコーディング用のCharsetを受け取ります。
PrintWriterの作成
まずクラスをインポート:
import java.io.PrintWriter;
1. 既存のWriterから
FileWriter file = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(file, true); // autoFlush = true
2. OutputStreamから
FileOutputStream fos = new FileOutputStream("output.txt");
PrintWriter out = new PrintWriter(fos, true);
3. ファイル名から直接
PrintWriter out = new PrintWriter("output.txt", true);
4. 文字エンコーディング指定
import java.nio.charset.Charset;
PrintWriter out = new PrintWriter("output.txt", true, Charset.forName("UTF-8"));
Charsetを使用すると、テキストが望ましいエンコーディングで書き込まれます。
主要メソッド
print()とprintln()
これらのメソッドは生テキストまたは行終端付きテキストを書き込み:
print(obj)–objの文字列表現を改行なしで書き込みprintln(obj)– 文字列を書き込み、システム行区切り文字を追加
printf()
printfファミリーはJavaのFormatter構文をサポート。例:
out.printf("I am %d years old.", 25);
その他の便利なメソッド
| メソッド | 説明 |
|---|---|
close() | ストリームを閉じ、リソースを解放 |
checkError() | 書き込みエラー発生時trueを返す |
append(CharSequence) | 指定シーケンスをライターに追加 |
実践例
以下はprintf()を使用してフォーマット済みテキストをoutput.txtに書き込む完全で実行可能なプログラム:
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrintWriterDemo {
public static void main(String[] args) {
try (PrintWriter out = new PrintWriter(new FileWriter("output.txt"), true)) {
int age = 25;
out.printf("I am %d years old.\n", age);
} catch (IOException e) {
e.printStackTrace();
}
}
}
このプログラムを実行すると、output.txtに以下の行が作成されます:
I am 25 years old.
さらに学ぶ
公式仕様についてはJava PrintWriter APIとCharsetドキュメントを参照。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ArrayList完全マスター:操作・メソッド・ベストプラクティス
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除