顺序输入流 SequenceInputStream

     SequenceInputStream 类可以将几个输入流串联在一起,合并为一个输入流。当通过这个类来读取数据时,它会依次从所有被串联的输入流中读取数据。对于程序来说,就好像是对同一个流操作。SequenceInputStream类的构造方法为:
    
     SequenceInputStream(Enumeration e) --------在枚举类型的参数e中包含了若干需要被串联的输入流。

     SequenceInputStream(InputStream s1, InputStream s2) ------参数s1和s2代表两个需要被串联的输入流。顺序输入流先读取s1中的数据,再读取s2中的数据。

   下面演示SequenceInputStream的用法
package xiaohang.com;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;

public class SequenceTester {
	public static void main(String[] args) throws IOException {
		InputStream s1 = new ByteArrayInputStream("你".getBytes());
		InputStream s2 = new ByteArrayInputStream("好".getBytes());
		InputStream in = new SequenceInputStream(s1, s2);
		int data;
		while ((data = in.read()) != -1) {
			System.out.println(data + "\t");
		}
		in.close();
	}
}

 
    以上main()方法 先创建了两个字节数组输入流,假定本地的操作系统的默认的字符编码为GBK,其实就是 GBK。 "你".getBytes()方法返回 “你”的GBK字符编码, "好".getBytes()方法返回字符“好”的GBK字符编码。 main()方法接着创建了一个顺序输入流,它把前面两个输入流串联了起来。 打印结果如下:

顺序输入流 SequenceInputStream

   在上边的打印结果中, 196和227为“你”的GBK 字符编码, 186和195为 "好" 的字符编码。
    程序只要关闭顺序输入流,它的 close()方法就会依次关闭所有被串联的输入流。

你可能感兴趣的:(java)