java.lang.Object java.io.InputStream java.io.SequenceInputStream合併流,顧名思義,將兩個或者多個輸入流合併成一個。
構造方法:
SequenceInputStream(Enumeration<? extends
InputStream> e) 通過記住參數來初始化新創建的 SequenceInputStream ,該參數必須是生成運行時類型爲 InputStream 對象的
Enumeration 型參數。 |
SequenceInputStream(InputStream s1,
InputStream s2) 通過記住這兩個參數來初始化新創建的 SequenceInputStream (將按順序讀取這兩個參數,先讀取
s1 ,然後讀取 s2 ),以提供從此 SequenceInputStream 讀取的字節。 |
常用方法:
int |
available() 返回不受阻塞地從當前底層輸入流讀取(或跳過)的字節數的估計值,方法是通過下一次調用當前底層輸入流的方法。 |
void |
close() 關閉此輸入流並釋放與此流關聯的所有系統資源。 |
int |
read() 從此輸入流中讀取下一個數據字節。 |
int |
read(byte[] b, int off, int len)
將最多 len 個數據字節從此輸入流讀入 byte 數組。 |
示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;
public class SequenceInputStreamTest {
public static void main(String[] args) {
InputStream is1 = null;
InputStream is2 = null;
OutputStream os = null;
SequenceInputStream sis = null;
try {
is1 = new FileInputStream(new File("E:\\aa.txt"));
is2 = new FileInputStream(new File("E:\\bb.txt"));
sis = new SequenceInputStream(is1,is2);
os = new FileOutputStream(new File("E:\\cc.txt"));
int tmp = 0 ;
while((tmp =sis.read())!=-1){
os.write(tmp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
// 關閉合並流
if(sis != null){
sis.close();
}
if(is1 != null){
is1.close(); // 關閉輸入流1`
}
if(is2 != null){
is2.close(); // 關閉輸入流2
}
if(os != null){
os.close(); // 關閉輸出流
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}