SequenceInputStream 类可以将几个输入流串联在一起,合并为一个输入流。当通过这个类来读取数据时,它会依次从所有被串联的输入流中读取数据。对于程序来说,就好像是对同一个流操作。SequenceInputStream类的构造方法为:
SequenceInputStream(Enumeration e) --------在枚举类型的参数e中包含了若干需要被串联的输入流。
SequenceInputStream(InputStream s1, InputStream s2) ------参数s1和s2代表两个需要被串联的输入流。顺序输入流先读取s1中的数据,再读取s2中的数据。
下面演示SequenceInputStream的用法
以上main()方法 先创建了两个字节数组输入流,假定本地的操作系统的默认的字符编码为GBK,其实就是 GBK。 "你".getBytes()方法返回 “你”的GBK字符编码, "好".getBytes()方法返回字符“好”的GBK字符编码。 main()方法接着创建了一个顺序输入流,它把前面两个输入流串联了起来。 打印结果如下:
在上边的打印结果中, 196和227为“你”的GBK 字符编码, 186和195为 "好" 的字符编码。
程序只要关闭顺序输入流,它的 close()方法就会依次关闭所有被串联的输入流。
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()方法接着创建了一个顺序输入流,它把前面两个输入流串联了起来。 打印结果如下:

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