Java IO---学習ノート(標準ストリーム、メモリ読み書きストリーム、シーケンス入力ストリーム)

1944 ワード

1、標準フロー
言語パッケージjava.langのSystemクラスは、標準入出力ストリームとエラーストリームを管理します.System.inは、標準入力装置から入力データ(通常はキーボード)を取得するためにInputStreamから継承される.System.out PrintStreamから継承され、デフォルトの表示装置(通常はディスプレイ)に入力が送られるSystem.errもPrintStreamから継承され、エラー情報をデフォルトの表示装置(通常はディスプレイ)に送信する
     mainメソッドが実行されるたびに、上記3つのオブジェクトが自動的に生成されます.ここではコード検証を書かないでください. 
2、メモリ読み書きストリーム
メモリ上のI/Oをサポートするためにjava.ioには、クラス:ByteArrayInputStream、ByteArrayOutputStream、StringBufferInputStreamが用意されています.
  • ByteArrayInputStreamは、指定するバイト配列からデータ
  • を読み出すことができる.
  • ByteArrayOutputStreamには、バッファが格納可能なデータ(バッファサイズは構築方法で設定でき、デフォルトは32)が用意されており、write()メソッドでデータを書き込み、toByteArray()メソッドでバッファ内の有効バイトをバイト配列に書き込むことができます.size()メソッドは、書き込みのバイト数を知ることができる.reset()は、すべてのコンテンツを破棄できます.
  • StringBufferInputStreamは、8ビットのバイトデータ(StringReaderに置き換えられた)
  • ではなく、文字バッファStringBufferから16ビットのUnicodeデータを読み出す点で、ByteArrayInputStreamと同様である.
    ここでは簡単な紹介しかしませんが、興味のある学生はこれらのクラスの具体的な方法を見ることができます.
    3、順次入力フロー
    JAva.ioにはクラスSequenceInputStreamが用意されており、アプリケーションがいくつかの入力ストリームを順次接続できるようにしています.シーケンス入力ストリームは、複数の異なる入力ストリームを1つの入力ストリームに統一する機能を提供し、プログラムをより簡潔にすることができる.
    例:
    FileInputStream f1,f2;
    String s;
    f1 = new FileInputStream("file1.txt");
    f2 = new FileInputStream("file2.txt");
    SequenceInputStream fs = new SequenceInputStream(f1,f2);
    DataInputeStream ds = new DataInputStream(fs);
    while((s = ds.readLine()) != null) {
        System.out.println(s);
    }