JAva ioストリームクラスの機能概要


JAva ioストリームの分類:
1、ioストリームの2大操作データの形式から分類する.input stream 、output stream
2、io流の操作からの最細粒度分類.byte(stream)、char(Reader).
3、使用シーンの角度から分類する.
フィルタフローの概念:
FilterInputStream:フィルタフローを入力します.このフローの継承者はunderlying input streamを指定する必要があります.
FilterOutputStream:データ出力を提供する必要があるunderlying output streamを継承するフィルタ・ストリームを出力します.
似たようなものは、FilterReader、FilterWriter
特殊な点:
閉じる前に、バッファデータをリフレッシュします.△sunの会社のデザインが分からなかった.バッファフローと確定していない以上、なぜここで実現したのか.

  public void close() throws IOException {
	try {
	  flush();
	} catch (IOException ignored) {
	}
	out.close();
    }

バッファフローの概念:
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
キャッシュフローの特徴:ある程度のキャッシュを提供し、システムの安定性と読み書き効率を高めることができます.
データ・ストリームの概念:
DataInput
DataInputStream extends FilterInputStream
DataOutput
DataOutputStream extends FilterOutputStream
キャッシュフローの特徴:underlying byte streamをデータのタイプに従って読み書きすることを実現しました.例えばint,byteなどを読み取る.
メモリフローの概念:
CharArrayReader extends Reader
CharArrayWriter extends Writer
ByteArrayInputStream extends InputStream
ByteArrayOutputStream extends OutputStream
メモリストリームの特徴:byteとcharの配列に対するストリーム形式操作を実現した.
ファイル関連:
FileInputStream extends InputStream
FileOutputStream extends OutputStream
FileReader extends InputStreamReader
FileWriter extends OutputStreamWriter
ファイルストリームの特徴:ファイルに関連して、直接ファイルから読み込んだり、ファイルに出力したりします.ファイルストリームの読み書きは、1つのファイルが複数のオブジェクトを同時に書くか、同時に読むか、読み書きを交差させて待つかなど、プラットフォームと関係があります.
バイト文字変換ストリーム:
OutputStreamWriter extends Writer
InputStreamReader extends Reader
特徴:ストリームから読み込まれたbyteストリームを変換できる文字ストリーム.たとえば、ファイル操作では、FileReaderとFileWriterが上記の変換のストリームを継承します.
オブジェクトフロー
ObjectInput extends DataInput
ObjectInputStream  extends InputStream implements ObjectInput
ObjectOutput extends DataOutput
ObjectOutputStream extends OutputStream implements ObjectOutput
特徴:byteストリームとjava Objectオブジェクト間の変換機能を実現します.
パイプ流
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter
特徴:2つのスレッド間のデータの転送を実現します.
遡及可能な流れ
PushbackReader extends FilterReader
PushbackInputStream extends FilterInputStream
特徴:遡及することができて、文字を読んだ後に情況を発見して、バッファに戻って、それから読むことができます.もちろんバッファに遡るデータはunderlying streamには戻らない
ランダムファイル読み込み
RandomAccessFile
特徴:ファイルデータをランダムに読み取るapiです.(このファイルのロックメカニズムは重要ですので、特に注意が必要です)
その他:
PrintStream extends FilterOutputStream
class PrintWriter extends Writer
all over