たSequenceInputStreamは、他の入力ストリームの論理的なシリーズを表します。
それは最終的に含まれる入力ストリームファイルの終わりに達するまで、それは、それがファイルの終わりに達するまで、最初からの入力ストリーム開始のセット、および第2から読み出され、そうで注文から読み取り開始します
コンストラクタ
たSequenceInputStream(のInputStream S1、S2のInputStream)
たSequenceInputStream(列挙<?拡張したInputStream> e)に
例:
1 // 複合1.TXT、2.txt、ファイルに3.txtファイル 2 / * 3 *よう、ベクトル集合が可能であるが、非効率的な 4 * / 5 / *ベクトル<FileInputStreamの> =ベクトル新しい新しいベクトル<のFileInputStream> (); 6 vector.add(新しい新規のFileInputStream( "1.TXT" )); 7 vector.add(新しい新規のFileInputStream( "2.txt" )); 8 vector.add(新しい新規のFileInputStream(」3。 .TXT " )); 9 列挙<FileInputStreamの> EN = vector.elements(); 10 AたSequenceInputStream SS = 新しい新AたSequenceInputStream(EN); / * 11 12であり、 / * 13であり、 *第二の方法、高い捕集効率のArrayList 14 * 収集ツールの方法を用いてCollections.enumerationのArrayListセットターンに列挙<FileInputStreamの>オブジェクトタイプ 15 * / 16 17 のArrayList <FileInputStreamを> ARR = 新しい新規のArrayList <のFileInputStream> (); 18である 19。 arr.add(新しい新規のFileInputStream( "1.TXT" )); 20である arr.add(新しい新規のFileInputStream( "2.txt" )); 21である arr.add(新しい新 FileInputStreamを( "3.txt" )); 22である AたSequenceInputStream SS1 =新新たSequenceInputStream(Collections.enumeration(ARR)); 23 / * 24 * Collections.enumeration(ARR)の原則の実現: 25 * 26 * 列挙API注:このインタフェースのこのページの機能で、インターフェイスイテレータのことで重複をIS 27 *翻訳:ザ・インタフェース機能は、インタフェースイテレータコピーされる 28 * 29 *最終イテレータ<FileInputStreamのが> ITは(arr.iterator =)を、 30 *たSequenceInputStream SS1新しい新しい=たSequenceInputStream(列挙新しい新しい<入力ストリーム>(){ 31は @Override 32 hasMoreElements(パブリックブール値){ 33は、 34のIS リターンit.hasNext(); 35 } 36 37 @Override 38 公共のInputStreamのnextElement(){ 39 40 リターンit.next()。 41 } 42 }); 43 * / 44 バイト []バフ= 新しい バイト [1024 ]; 45 のFileOutputStreamアウト= 新しいたFileOutputStream( "4.txt" )。 46 INT LEN = 0 。 47 一方(=(LEN = ss1.read(バフ))! - 1 ){ 48 out.write(バフ、0 、LEN)。 49 } 50 out.close()。 51 52 ss1.close()。 53
ファイルを切断:
1 公共 静的 ボイド SplitFile(ファイルファイル)がスローにIOException { 2 //を関連する読み出しストリームファイルに 3。 FileInputStreamのFISは= 新しい新規のFileInputStream(ファイル); 4 。5 // 1Mのバッファを定義する 。6 バイト [] = BUF 新しい新しい バイト[ SIZE]; 7 8。 // オブジェクトを作成 9。 AたFileOutputStream FOS = NULL ; 10 11。 INT LEN = 0 ; 12である INT = COUNT 1。; 13は、 DIR =ファイルの新しい新ファイル( "partfiles" ); 14 15 であれば(!{dir.exists()) 16 dir.mkdirs()。 17 } 18 19 ながら((LEN = fis.read(BUF))= -1!){ 20の FOS = 新しいたFileOutputStream(新しいファイル(ディレクトリ、(カウント++)+ ".part" )); 21 fos.write(BUF、0 、LEN)。 22 } 23 fos.close()。 24 fis.close()。 25 }