対象:3級では概念レベルの理解で十分 / 「java.io というパッケージがある」「何のためのものか」を覚えます
Javaの標準クラスライブラリは パッケージ という単位でまとめられています。例えるなら「クラスをジャンルごとにフォルダ分けしたもの」です。
| パッケージ名 | 主な内容 | 主なクラス |
|---|---|---|
java.lang | 言語の基本機能(import 不要で使える) | String, Math, Integer, System |
java.io | 入出力(Input/Output) | File, BufferedReader, PrintWriter, PrintStream |
java.util | ユーティリティ(コレクションなど) | ArrayList, HashMap, Scanner |
java.lang と java.io が明記されています。java.lang のクラス(String・Math など)はすでに学習済み。この単元では java.io の役割と代表的なクラス名を把握します。
io は Input/Output(入出力) の略です。プログラムと外部(ファイル・キーボード・画面など)の間でデータをやり取りするためのクラスが集められています。
| 用途 | 代表的なクラス | 使い方の例 |
|---|---|---|
| ファイルを表す | File | ファイル名・サイズ・存在チェック |
| ファイルからテキストを読む | FileReader, BufferedReader | 1行ずつ読み込み |
| ファイルにテキストを書く | FileWriter, PrintWriter | 1行ずつ書き出し |
| 標準出力(画面表示) | PrintStream | System.out がこの型 |
| 標準入力(キーボード) | InputStream | System.in がこの型 |
これまで何度も使ってきた System.out.println(...)。実はこの System.out は java.io.PrintStream 型のインスタンスです。
// System クラスは java.lang.System
// その out フィールドが java.io.PrintStream 型
System.out.println("Hello");
// = (java.io.PrintStream) System.out . println("Hello")
System.out.println() も、実は java.io の機能を借りています。「java.io はファイルの話だけ」ではなく「画面出力も含む入出力全般」を扱うパッケージだと覚えておきましょう。
java.lang のクラスは特別扱いで import 不要ですが、java.io のクラスを使うには import 文 が必要です。
// ① 特定のクラスだけ import
import java.io.File;
import java.io.BufferedReader;
// ② パッケージ内すべてを一括 import(* は全クラスの意味)
import java.io.*;
public class Sample {
public static void main(String[] args) {
File f = new File("data.txt");
System.out.println(f.exists());
}
}
| パッケージ | import 必要? |
|---|---|
java.lang(String, Math, Integer など) | 不要(自動でimport される) |
java.io(File, BufferedReader など) | 必要 |
java.util(ArrayList, Scanner など) | 必要 |
import java.io.*;
public class FileRead {
public static void main(String[] args) throws IOException {
// ファイルを1行ずつ読む
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
ファイル操作は「ファイルがない」「読み込みに失敗した」などの例外(エラー)が発生する可能性があります。Java では「この例外が出るかも」を throws で宣言する必要があります。
これは「例外処理」というテーマで、2級以降の範囲です。3級では知らなくて大丈夫。
試験との対応
| よく問われること | 正しい答え |
|---|---|
| java.io の役割 | 入出力(Input/Output) |
| java.io の代表的なクラス | File, BufferedReader, PrintStream など |
| java.lang と java.io の違い | java.lang は import 不要、java.io は import 必要 |
| System.out の型 | java.io.PrintStream |
3級ではコードを書く問題は出題されません。パッケージの存在と役割を理解できれば十分です。
java.io パッケージの主な役割として正しいものはどれか。
io は Input/Output の略。ファイル読み書き、標準入出力(キーボード入力・画面表示)など、プログラムと外部の間のデータのやり取りを担当する。ネットワークは java.net、数学計算は java.lang.Math。
Javaのプログラムで java.io パッケージのクラス(例:File)を使うために必要なものはどれか。
java.lang 以外のパッケージのクラスを使うには、ソースの冒頭(package 行の次あたり)に import 文 が必要。* でパッケージ内全クラスを一括 import できる。extends はクラス継承用キーワードで、パッケージの import には使えない。
これまで何度も使ってきた System.out は、実はどのクラスのインスタンスか。
System.out は java.lang.System クラスのフィールド(メソッドではない)で、その型は java.io.PrintStream。つまり System.out.println("...") は「java.io.PrintStream のインスタンスに対して println メソッドを呼んでいる」ということ。普段使っている println も実は java.io の機能。
次のうち java.io パッケージに含まれるクラスはどれか。
File はファイルを表す java.io のクラス。Math・String・Integer はいずれも java.lang。java.io の他の代表クラスとして BufferedReader, PrintWriter, PrintStream, FileReader などがある。
サーティファイ Java 3級の試験範囲「クラスライブラリ」に明記されているパッケージは java.lang と何か。
| ポイント | 内容 |
|---|---|
| パッケージ | クラスをジャンルごとに分けたもの |
java.lang | 言語の基本機能。import 不要。String/Math/Integer など |
java.io | 入出力(Input/Output)。import 必要。File/BufferedReader など |
System.out | 実は java.io.PrintStream 型のインスタンス |
| 3級での扱い | クラス名と役割を覚える程度。コードを書く問題は出ない |