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()方法接着创建了一个顺序输入流,它把前面两个输入流串联了起来。 打印结果如下:
在上边的打印结果中, 196和227为“你”的GBK 字符编码, 186和195为 "好" 的字符编码。
程序只要关闭顺序输入流,它的 close()方法就会依次关闭所有被串联的输入流。
分享到:
相关推荐
- **顺序输入流SequenceInputStream**:允许将多个输入流串联成一个输入流。 - **管道流PipedStreams**:用于线程间的数据通信。 ### 压缩流CompressingStreams 压缩流提供数据压缩和解压缩功能。 - **压缩和解...
`SequenceInputStream`是Java提供的一个特殊流,它可以顺序地读取多个输入流,就像它们是一个流一样。 **1. SequenceInputStream的使用** `SequenceInputStream`的构造方法接收一个`Enumeration`类型的参数,这个...
Java序列化流(SequenceInputStream)是Java I/O流中的一个重要概念,它允许程序将多个输入流串联起来,形成一个逻辑上的连续输入流。这在处理多个数据源合并或连续读取时非常有用。在给定的示例代码中,我们可以...
总结起来,Java的SequenceInputStream提供了一种方便的方式来顺序读取多个输入流,而不需要手动管理多个流的读取顺序。这在处理多个数据源或合并文件时非常实用,简化了代码并提高了可读性。同时,通过结合使用...
- SequenceInputStream:组合多个输入流,按顺序读取它们的内容。 2. 输出流(Output Stream) - OutputStream:所有输出流的基类,用于写入原始字节。 - ByteArrayOutputStream:接收字节并存储到内存中,可将...
- **SequenceInputStream**:将多个输入流合并为一个输入流,可以顺序读取多个数据源的内容。 - **OutputStream** - **ByteArrayOutputStream**:将数据写入内存中的字节数组。适用于需要将数据暂时存储在内存中...
- SequenceInputStream:组合多个输入流,按顺序读取多个输入流的数据。 - OutputStream:字节输出流,作为所有字节输出流的超类,用于写入原始字节数据。例如: - ByteArrayOutputStream:字节数组输出流,用于...
此外,ObjectInputStream可以反序列化由ObjectOutputStream序列化的对象,SequenceInputStream则可以将多个InputStream连接起来,按顺序读取。 Reader和Writer体系与InputStream和OutputStream类似,只是它们处理的...
- **`SequenceInputStream`**:合并多个输入流为一个单一的顺序输入流。 ##### 2. 字节流操作 - **读取操作**:通过 `read()` 方法从流中读取字节。 - **关闭流**:使用 `close()` 方法关闭流,释放系统资源。 ##...
以及`SequenceInputStream`,可以合并多个输入流。 - 输出流:包含`ByteArrayOutputStream`,将数据写入内存缓冲区;`FileOutputStream`,写入文件;`PipedOutputStream`,与PipedInputStream配合使用;以及`...
- `SequenceInputStream`:可以将多个输入流合并成一个输入流。 - **输出流**:向目标端写入字节数据。主要类包括: - `ByteArrayOutputStream`:将数据写入内存数组。 - `FileOutputStream`:将数据写入文件。 ...
- SequenceInputStream:合并多个输入流,按顺序读取。 - LineNumberInputStream:记录并提供行号的输入流。 - DataInputStream:增加了读取基本数据类型(如int、float)的方法。 除了InputStream,还有...
SequenceInputStream可以把多个输入流当作一个连续的输入流来读取,使程序可以顺序地读取多个文件或数据源。 ObjectInputStream和ObjectOutputStream是用于对象序列化的流。它们可以读写Java对象的状态,实现了对象...
- **SequenceInputStream** 可以将多个输入流合并为一个,使得数据可以从多个源头顺序读取。 - **过滤流的其他类型**,如`BufferedInputStream`和`BufferedOutputStream`,可以提供缓冲功能以提高性能;`...
- **概述**:Java的IO流体系主要分为两大类——字节流和字符流,每种流又根据数据流向进一步分为输入流和输出流。 ##### 字节流 1. **InputStream**: 代表从源读取数据的字节输入流。 2. **OutputStream**: 代表向...
- 输入流:ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream和SequenceInputStream。 - 输出流:ByteArrayOutputStream、FileOutputStream、PipedOutputStream和...
- `SequenceInputStream`:顺序连接多个输入流。 - `FilterInputStream`:提供基础的过滤器流类。 ##### 输出流 面向字节的输出流类主要继承自`OutputStream`类。关键方法包括: - `write(int byteData)`:写入...
- SequenceInputStream可以将多个输入流合并为一个连续的流,类似于将多个文件的内容顺序连接。 在Java IO中,还有一组用于对象序列化的流类,包括ObjectInputStream和ObjectOutputStream,它们支持将Java对象序列...
流是有方向性的,不能往一个输入流中写数据,也不能从一个输出流中读数据。 字节流和字符流: InputStream和OutputStream是Java中两个基本的流类,它们可以读取或写入字节流或字符流。FilterInputStream和...