深入淺出javase——SequenceInputStream

/*

* 以前的操作:

* a.txt -- b.txt

* c.txt -- d.txt

*

* 現在想要:

* a.txt+b.txt -- c.txt

*/

public class SequenceInputStreamDemo {

public static void main(String[] args) throws IOException {

// SequenceInputStream(InputStream s1, InputStream s2)

// 需求:把ByteArrayStreamDemo.java和DataStreamDemo.java的內容複製到Copy.java中

InputStream s1 = new FileInputStream("ByteArrayStreamDemo.java");

InputStream s2 = new FileInputStream("DataStreamDemo.java");

SequenceInputStream sis = new SequenceInputStream(s1, s2);

BufferedOutputStream bos = new BufferedOutputStream(

new FileOutputStream("Copy.java"));

// 如何寫讀寫呢,其實很簡單,你就按照以前怎麼讀寫,現在還是怎麼讀寫

byte[] bys = new byte[1024];

int len = 0;

while ((len = sis.read(bys)) != -1) {

bos.write(bys, 0, len);

}

bos.close();

sis.close();

}

}


/*

* 以前的操作:

* a.txt -- b.txt

* c.txt -- d.txt

* e.txt -- f.txt

*

* 現在想要:

* a.txt+b.txt+c.txt -- d.txt

*/

public class SequenceInputStreamDemo2 {

public static void main(String[] args) throws IOException {

// 需求:把下面的三個文件的內容複製到Copy.java中

// ByteArrayStreamDemo.java,CopyFileDemo.java,DataStreamDemo.java

// SequenceInputStream(Enumeration e)

// 通過簡單的回顧我們知道了Enumeration是Vector中的一個方法的返回值類型。

// Enumeration elements()

Vector v = new Vector();

InputStream s1 = new FileInputStream("ByteArrayStreamDemo.java");

InputStream s2 = new FileInputStream("CopyFileDemo.java");

InputStream s3 = new FileInputStream("DataStreamDemo.java");

v.add(s1);

v.add(s2);

v.add(s3);

Enumeration en = v.elements();

SequenceInputStream sis = new SequenceInputStream(en);

BufferedOutputStream bos = new BufferedOutputStream(

new FileOutputStream("Copy.java"));

// 如何寫讀寫呢,其實很簡單,你就按照以前怎麼讀寫,現在還是怎麼讀寫

byte[] bys = new byte[1024];

int len = 0;

while ((len = sis.read(bys)) != -1) {

bos.write(bys, 0, len);

}

bos.close();

sis.close();

}

}


分享到:


相關文章: