Javaの入出力ストリームの仕組み
Java において、I/O ストリームとは、入力と出力を処理するためのメカニズムです。プログラムは、入力ソースからデータを読み取り、また、出力ソースにデータを書き出すことができます。I/O ストリームは、ファイル、ネットワーク接続、標準入出力などの読み取りと書き込みに使用できます。I/O ストリームは、入力ストリームと出力ストリームの 2 つのタイプに分けられます。
入力ストリーム(InputStream)は入力元からデータを読み込むインターフェースです。read()、read(byte[] b)などの読み込みメソッド群を提供します。FileInputStream(ファイルから読み込み)、ByteArrayInputStream(バイト配列から読み込み)、BufferedInputStream(バッファリングされた入力ストリーム)などは、よく使われる入力ストリームです。
出力が書きこまれる出力ストリームはデータの書き込みに使われます。書き込みメソッドの、write(int b)、write(byte[] b)などのメソッドを備えています。一般的な出力ストリームには、FileOutputStream(ファイルに書き込み)、ByteArrayOutputStream(バイト配列に書き込み)、BufferedOutputStream(バッファ付き出力ストリーム)などがあります。
I/Oストリームの概念により、プログラムはさまざまなタイプのデータ入出力を処理でき、外部リソースとの対話がより柔軟になります。Javaでは、I/Oストリームを使用してファイルの読み書き、ネットワーク通信、ユーザーの入出力などの機能を実現できます。