Java Gold合格へ向けて
黒本の第4章は『入出力』、これをさらに細分化すると下記の6つに分かれる(黒本より抜粋)。
入出力ストリームというのは、外部とのデータのやり取り(ファイルへのデータの読み込み/書き込みなど)を行うために用意されたJavaのパッケージのことを指します。そのため、第四章で学んだストリームAPIとは別物ということに注意しなければいけません。
入出力ストリームは、入力と出力でそれぞれ入力ストリームと出力ストリームに分類されます。入力がデータの読み込み、出力がデータの書き込みという向きになっています。 またやり取りするデータのサイズで、それぞれキャラクタストリームとバイトストリームに分類されます。その名が示す通り、キャラクタストリームはchar単位、バイトストリームはbyte単位となっています。利用できる用意された実装クラスとしては下記の表にまとめた通り。それぞれの使い方については別記事でまとめていきたい。
クラス名 | 説明 | キャラクタストリーム or バイトストリーム | 入力ストリーム or 出力ストリーム |
---|---|---|---|
FileInputStream | ファイルからbyte単位の読み込みを行うストリーム | バイト ストリーム |
入力 ストリーム |
FileOutputStream | ファイルからbyte単位の書き出しを行うストリーム | バイト ストリーム |
出力 ストリーム |
DataInputStream | 基本データ型のデータを読み込めるストリーム | バイト ストリーム |
入力 ストリーム |
DataOutputStream | 基本データ型のデータを書き出せるストリーム | バイト ストリーム |
出力 ストリーム |
FileReader | ファイルからchar単位の読み込みを行うストリーム | キャラクタ ストリーム |
入力 ストリーム |
FileWriter | ファイルからchar単位の書き出しを行うストリーム | キャラクタ ストリーム |
出力 ストリーム |
BufferedReader | char単位でバッファリングしながら読み込むストリーム | キャラクタ ストリーム |
入力 ストリーム |
BufferedWriter | char単位でバッファリングしながら書き出すストリーム | キャラクタ ストリーム |
出力 ストリーム |
シリアライズというワードは(個人的にJava Goldで初見だった)、Javaで独自に定義したオブジェクトを出力ストリームに書き出すことを指す。シリアライズされたオブジェクトを読み込んで復元することをデリシアライズという。ただシリアライズできるようにするには、java.io.Serializableインタフェースを実装する必要があるようだ。この辺りも実際に動かして確認したい。
今後の記事で確認したいこととしては下記の三点。