(私のブログを見る- 「詳細なバイトストリームを」)
たSequenceInputStreamカテゴリ:
コンセプト:
表す他の入力ストリームの論理的連結である
からその入力ストリームの順序集合から始まり、
そして第一の入力ストリームからの読み込みを開始、ファイルの終わりまで、
続いて入力ストリームから第2の読み出し、
など到達を含むまでファイル入力ストリームの終わりまで最後
このストリームは、中に厳しいものになることができます複数のInputStreamのサブクラスをマージ情報ファイル。
さて、今、私はこのフロー示さなければならないコンストラクタを:
コンストラクタ:
- たSequenceInputStream(入力ストリームS1、入力ストリームS2)
新しく作成されたSequenceInputStreamを初期化するために、これらの2つのパラメータを記憶することによって
(これら2つのパラメータを読み取るためのシーケンスで、第1の読み出しS1は、次にS2読み取り)- たSequenceInputStream(列挙は、<?のInputStream拡張> e)は
、パラメータを覚えることで、新しく作成されたSequenceInputStreamを初期化し
、このパラメータが生成されなければならないInputStream型のオブジェクトの実行時の列挙型パラメータ
今、私はこの種の示さなければならない一般的に使用されるAPIを:
共通API:
- ()利用可能なINT
入力ストリームの現在のバイト数の底から戻ってブロックせずに読み込む(またはスキップ)推定値は、
この方法は、現在の方法の下に単一の入力ストリームによって呼び出されます- ボイド閉じる()
この入力ストリームを閉じて、ストリームに関連するすべてのシステムリソースを解放します- int型は、read()は
次のデータバイトを読み取るために、この入力ストリームから- INTは読み取り(バイト[] B、オフINT、INT LEN)
アップこの入力ストリームからlenバイトのデータをバイト配列に
さて、今、私はAPIの下の部分を使用して示さなければなりません。
package edu.youzg.about_io.about_file.core.Test;
import edu.youzg.about_io.about_file.core.FanInfo;
import java.io.*;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
public class Test {
public static void main(String[] args) throws IOException, ClassNotFoundException {
FileInputStream in1 = new FileInputStream("JoJo.properties");
DataInputStream in2 = new DataInputStream(new FileInputStream("plantsVSzombies.mp4"));
SequenceInputStream in = new SequenceInputStream(in1, in2);
FileOutputStream out = new FileOutputStream(new File("summary.txt"));
int len = 0;
byte[] bytes = new byte[1024 * 8];
while ((len = in.read(bytes))!= -1){
out.write(bytes,0,len);
out.flush();
}
out.close();
in.close();
}
}
今、私は次の二つのソースファイルの情報を表示する必要があります。
私は情報ファイルの次の世代を表示するために来る:
あなたが見ることができ、異なる流れに2つのファイルは、ファイルを詰め、コードが指定したファイルにマージされます。
(I "詳細なバイトストリーム"ボーエンリンク:https:////www.cnblogs.com/codderYouzg/p/12418463.html)
(I 記事ボーエンリンクのI / Oストリームコレクション:HTTPS://// WWW .cnblogs.com / codderYouzg / P- / 12418404.html)