目次> 第14章> 14.1 | TOPUPPREVNEXT |
「外部」から情報を読み込んだり、「外部」に情報を書き出したりするためのクラスは、 java.io パッケージとして提供されています。 「外部」の代表は「ファイル」ですが、ファイルに限らず、キーボードや画面であったり、 他のプログラムとのデータ交換であったり、 ネットワークの向こう側のコンピュータであったりしても、同じインターフェースで読み書きができます。
コンピュータの情報とは、ビットの列( バイトの列と考えてもよい、バイトストリームという )ですから、 バイトストリームの入出力が基本です。 バイトストリームの入出力を、バイナリ入出力ともいいます。 実際には文字として情報交換をするケースが多いので、 文字ストリームの入出力のためのクラスも種々用意されています。 また、オブジェクト単位で入出力するためのクラスも準備されています。 オブジェクトを「外部」に書き出すことを 直列化 serialization といいます。 現在のバージョンで直列化したものを、今後のバージョンアップしたJavaで読めるという保障はありません。 文字情報として出力するのがよいと思います。
文字ストリームにしても、バイトストリームにしても、プログラムで読み書きする単位と、 ファイルに書き出す単位( あるいはネットワークとやり取りする単位 )とは一般に異なります。
java.io パッケージのクラスを入出力するものについて整理すると次のようになります。
読み書きするもの | 扱うクラス | バッファリング | 機能 |
---|---|---|---|
文字 |
|
|
Windows の場合、入力時にシフトJISの文字ストリームを読み込み、
Unicodeの文字(または文字列)としてプログラムに渡されます。
出力時には、文字や文字列が自動的に、シフトJISに変換されます。
通常はバッファリングをしますから、
|
バイナリ |
|
|
read するとファイルにかかれているバイト列がそのままプログラムに渡されます。 write するとバイト列がそのままファイルに書き出されます。 |
文字 ← バイナリ 文字 → バイナリ |
|
|
|
オブジェクト |
|
オブジェクトをファイルに書き出したり、読み込んだりするためのバイトストリーム。 それぞれ、FileInputStream か FileOutputStream に接続して使用します。 |
ここでは以降、バッファリングを行う文字ストリームの入出力について解説します。
また、ファイルを表現するクラス java.io.File 、
ファイル選択をサポートする javax.swing.FileChooser 、
コンマで区切られた文字列を切り出す java.util.StringTokenizer
などについて使用例を中心に紹介します。
J2SE 5.0 では、
java.util.StringTokenizer より、
String クラスに追加された split メソッドが推奨されていますので、
14.3 例3 に掲げました。
更新日:2006-03-10 | TOPUPPREVNEXT |