Java PrintStreamクラス完全ガイド:print、println、printf解説
Java PrintStreamクラスをマスターする
JavaのPrintStreamクラスについて、作成方法、コアメソッド、実践例を掘り下げて解説します。
PrintStreamクラスはjava.ioパッケージの一部で、OutputStreamを拡張し、生バイトではなく人間が読めるテキストを出力するように設計されています。
PrintStreamの仕組み
他のストリームと異なり、PrintStreamはプリミティブ値(int、charなど)を書き込み前にフォーマット済みテキストに変換します。また、IOExceptionをスローせず、エラーはcheckError()で報告されます。
自動フラッシュは重要な機能で、以下の場合にストリームが自動的にフラッシュされます:
- 改行文字(
\n)が出力される println()メソッドが呼び出される- バイト配列が書き込まれる
PrintStreamの作成
まずクラスをインポート:
import java.io.PrintStream;
1. 既存のOutputStreamから
// 例: FileOutputStreamをラップ
FileOutputStream fos = new FileOutputStream("log.txt");
PrintStream ps = new PrintStream(fos, true); // true = autoFlush
オプションの自動フラッシュ付きでlog.txtにフォーマット済みテキストを書き込みます。
2. ファイル名から直接
PrintStream ps = new PrintStream("log.txt", true);
コンストラクタは自動フラッシュ用のbooleanを受け取ります。デフォルトではプラットフォームの文字エンコーディングを使用します。
3. charsetを指定
PrintStream ps = new PrintStream("log.txt", true, StandardCharsets.UTF_8);
Charsetを使用してUTF-8、UTF-16、またはサポートされる任意のエンコーディングを選択できます。
注意: 文字セットの詳細についてはJava Charset APIを参照。
PrintStreamのコアメソッド
print()とprintln()
print(Object obj)– オブジェクトの文字列表現を出力println(Object obj)– プラットフォーム固有の行終端文字を追加
例:System.outの使用
public class Main {
public static void main(String[] args) {
System.out.print("Hello World.");
}
}
ここでは、System.outは事前設定済みのPrintStreamなので、そのprint()メソッドが即座に利用可能です。
例:ファイルへの書き込み
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
ps.print("This is a text inside the file.");
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
結果のoutput.txtには:
This is a text inside the file.
printf()
フォーマット指定子を使用してフォーマット済みテキストを出力:
System.out.printf("I am %d years old", 25);
ここでは%dが整数値25で置き換えられます。
例:ファイルでprintf()使用
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
int age = 25;
ps.printf("I am %d years old.", age);
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
実行後、output.txtには:
I am 25 years old.
PrintStreamのその他のメソッド
| メソッド | 説明 |
|---|---|
close() | ストリームを閉じ、システムリソースを解放 |
checkError() | ストリームがエラーに遭遇した場合trueを返す |
append() | 指定文字シーケンスをストリームに追加 |
包括的な詳細については公式Java PrintStreamドキュメントを参照。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ArrayList完全マスター:操作・メソッド・ベストプラクティス
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除