Previous | Next | Trail Map | Writing Java Programs | 目次


入出力ストリーム

多くの Java プログラムがデータを読み込んだり書き込む必要がある。 この入門書の中で、データを読み込んだり書き込むプログラム例をいくつか見てきた。 たとえば、 Java 言語のナットとボルト(in the Writing Java Programs trail)で起用したプログラム例では、ユーザが入力したデータを読み込んだり、表示画面にデータを書き込んでいる。また後ででてくるソケットについて(in the Networking trail)では、ソケットを使用してネットワーク上にデータを読み込んだり、書き込む例を紹介する。 これらのプログラム例はすべてストリームから読み込んで、ストリームに書き込む。


定義: ストリームは流れている文字の並びである。


プログラムは、ソースに接続したストリームから文字の並びを読み込むことにより、データ発信元から入力を得ることができる。 プログラムは、宛先に接続した出力ストリームに文字の並びを書き込むことにより、出力を作り出すことができる。 Java 開発環境には、 java.ioパッケージ が含まれており、このパッケージはプログラムがデータの読み書きに使用できる入出力ストリームのセットを含む。 java.io の InputStreamクラス と OutputStream クラスは、Java上の 順番入出力ストリームの振る舞いを定義する抽象的なスーパークラスである。 同様に、特定の型の入出力ストリームを実装しているいくつかの InputStream と OutputStream のサブクラスが java.io に組み込まれる。 このレッスンでは、java.io の各クラスが行うこと、使用するクラスの決め方、その使用方法、および独自のストリームクラスを書くためにそれらをサブクラス化する方法について説明する。

このレッスンでは、java.io パッケージで使用可能なさまざまなタイプの入出力ストリームの例を紹介していないが、java.io で最もポピュラーなクラスの使用方法について実践的な例を提供する。

Java における入出力との最初の出会い

System クラスが管理する標準出力、標準エラー、および標準入力の使用を通して、恐らく Java で最初に入出力ストリームと出会う。

入出力ストリームの概要

Java プログラムは、入力ソースからデータを読み込む入力ストリームと出力ソースにデータを書き込む出力ストリームを使用する。 入出力ソースは、ファイル、文字列、あるいはメモリのように、データを含むものであれば何であってもよい。

入出力ストリームの使用

この節では、InputStream と OutputStream から直接派生する入出力ストリームのペアを示し、それらの使用例を用意している。

フィルタストリームとの作業

java.io パッケージには、ストリームから読み込まれたり書き込まれている時にデータをフィルタするフィルタストリームとして知られるストリームのセットに属する入出力ストリームが含まれる。 BufferedInputStream と BufferedOutputStream は、読み書きの間データをバッファリングするフィルタストリームで,ストリームの操作をいっそう効率的なものにする。

ランダムアクセスファイルとの作業

java.io の InputStream と OutputStream のサブクラスは、順番アクセスファイルを実装する。順番アクセスファイルは、初めから終わりまで順番に処理されなければならない。 ランダムアクセスファイルは、非順番(あるいはランダム)な順番でファイル内のデータにアクセスする能力をプログラムに提供する。 java.io の RandomAccessFile は、非順番の順番でアクセスすることができるファイルを実装する。


セキュリティについて: ローカルファイルシステム上の入出力は、現在のセキュリティマネージャによる承認に従う。 これらのレッスンのプログラム例はスタンドアロンアプリケーションであり、デフォルトではセキュリティマネージャを持たない。 アプレット上でこのコードを使用しようとすると、実行中のブラウザやビューワによっては動作しないことがある。 アプレットのセキュリティ制約事項については、アプレットの能力と制限の理解(in the Writing Applets trail)を参照のこと。


参照

java.io


Previous | Next | Trail Map | Writing Java Programs | 目次