跟我学IO(SequenceInputStream类)

SequenceInputStream类的作用是将多个输入流进行逻辑上串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

SequenceInputStream类的作用是将多个输入流进行逻辑上串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。 

如:存在三个InputStream输入流A、B、C,分别设置到SequenceInputStream中,然后开始从A输入流开始读取,直到将C读取完成为止。如下图:

SequenceInputStream

实现代码如下:

package io.inputStream;

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

public class SequenceInputStreamTest {

	public static void main(String[] args) throws IOException {
		String buf01 = "https://";
		String buf02 = "www.";
		String buf03 = "bug315.com";
		
		// 定义两个字节数组输入流
		ByteArrayInputStream input1 = new ByteArrayInputStream(buf01.getBytes());
		ByteArrayInputStream input2 = new ByteArrayInputStream(buf02.getBytes());
		ByteArrayInputStream input3 = new ByteArrayInputStream(buf03.getBytes());
		
		// 使用SequenceInputStream将输入流input1、input2、input3串联起来
		SequenceInputStream sequence1 = new SequenceInputStream(input1, input2);
		SequenceInputStream sequence2 = new SequenceInputStream(sequence1, input3);
		byte[] bytes = new byte[2048];
		int len = -1;
		while ( (len = sequence2.read(bytes)) != -1 ) {
			System.out.print( new String(bytes, 0, len) );
		}
		System.out.println();
	}
}

输出结果:

https://www.hxstrive.com

如果在胜利前却步,往往只会拥抱失败;如果在困难时坚持,常常会获得新的成功。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号