SequenceInputStream从名字上看, 他是一个序列字节输入流
既然是个序列
那么意味着 SequenceInputStream装着许多的输入流
所以
可以用他来合并文件
SequenceInputStream的主要方法
SequenceInputStream构造方法
new SequenceInputStream(Enumeration)
接受一个输入流泛型的枚举
然后怎么创建枚举呢??
Vector.elements():Enumeration
Vector继承自AbstractArrayList 所以创建和填充Vector的方法和创建Collection的方法一样
读
read(byte []array)
availabe():负责提供数组的长度
既然是输入流,当然也会有read()方法啦
还可以BufferredReader(new InputStreamReader(new SequenceInputStream(enum)))
然后使用readLine()方法
读的方法如果读完了一个流 会自动跳到下一个流!!
关流刷新
flush();
close();
实际应用
可用于将多个文件合并为一个文件
如:
看连载小说的时候是一章章的出,最后要整理成一本,那么就用到SequenceInputStream
某某视频网站的缓冲视频在本地是分段的文件,那这时看起来就很不爽啦,就可以用SequenceInputStream合并
tips:处理大文件的时候,小心数组长度超出了限度
下面做一个将lang包里面的java文件连在一起
package mypackage;
import java.io.*;
import java.util.*;
public class CombineNovel{
public static void main(String[] args)throws IOException{
Vector<InputStream> vectory=new Vector<InputStream>();
File directory=new File("C:\\Program Files\\Java\\jdk1.8.0_60\\src\\java\\lang");
String[] javasname=directory.list(new FilenameFilter(){
private boolean isJava(String filename){
return filename.toLowerCase().endsWith(".java");
}
public boolean accept(File file,String name){
return this.isJava(name);
}
});
for(String filename:javasname){
vectory.add(new FileInputStream("C:\\Program Files\\Java\\jdk1.8.0_60\\src\\java\\lang\\"+filename));
}
Enumeration enumeration=vectory.elements();
SequenceInputStream sis=new SequenceInputStream(enumeration);
BufferedInputStream bis=new BufferedInputStream(sis);
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("all_lang.java"));
int len=0;
while((len=bis.read())!=-1){
bos.write(len);
}
bis.close();
bos.close();
}
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
5) SequenceInputStream:把多个InputStream合并为一个InputStream 2) Out stream 1) ByteArrayOutputStream:把信息存入内存中的一个缓冲区中 2) FileOutputStream:把信息存入文件中 3) PipedOutputStream:实现...
Java序列化流(SequenceInputStream)是Java I/O流中的一个重要概念,它允许程序将多个输入流串联起来,形成一个逻辑上的连续输入流。这在处理多个数据源合并或连续读取时非常有用。在给定的示例代码中,我们可以...
Java序列号流(SequenceInputStream)是Java I/O流中的一个类,它允许我们将多个输入流连接在一起,就像一个单一的输入流一样进行操作。这在处理多个文件合并或者需要顺序读取不同源的数据时非常有用。 在示例代码...
SequenceInputStream sequenceStream = new SequenceInputStream(enu); // 读取SequenceInputStream byte[] buffer = new byte[1024]; int read; while ((read = sequenceStream.read(buffer)) != -1) { ...
FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、...SequenceInputStream、BufferedOutputStream、BufferedInputStream、PipedReader、PipedWriter、PipedInputStream、PipedOutputStream...
- `SequenceInputStream(Enumeration<InputStream> e)`:接收一个包含多个输入流的枚举集合。 - `SequenceInputStream(InputStream s1, InputStream s2)`:接收两个输入流。 #### 处理流实例 1. **...
- **知识点**:`SequenceInputStream` 类用于将多个 `InputStream` 对象合并成一个单一的 `InputStream` 对象。 - **解释**:在处理多个输入流时,如果需要将它们作为一个整体来读取数据,可以使用 `...
- **知识点**: Java 提供了多种文件操作类,如 `BufferedReader`、`Reader`、`SequenceInputStream` 和 `InputStream` 等,它们分别适用于不同的场景。 - **题目分析**: 本题问的是哪个类可以实现一次读入多个文件...
21. Java中,SequenceInputStream类可以将多个InputStream对象合并为单个InputStream对象。答案:(SequenceInputStream)。 22. 对"出生日期"字段进行有效性规则设置,限制输入1988年9月10日以前的日期,规则应为`。...
21. 空白处应填写与问题20相同的答案,即`SequenceInputStream`,用于合并多个`InputStream`。 这些知识点涵盖了计算机二级等级考试中可能遇到的基础知识,对于备考和提升计算机技能具有指导意义。
6. **SequenceInputStream**: 可以按顺序读取多个InputStream的流。 ##### 字符流 1. **Reader**: 字符输入流的基类。 2. **Writer**: 字符输出流的基类。 3. **FileReader/Writer**: 专门用于读写文件的字符流。 ...
SequenceInputStream可以把多个输入流当作一个连续的输入流来读取,使程序可以顺序地读取多个文件或数据源。 ObjectInputStream和ObjectOutputStream是用于对象序列化的流。它们可以读写Java对象的状态,实现了对象...
此外,`PipedInputStream`用于线程间通信,`SequenceInputStream`可以合并多个InputStream。 - **OutputStream**:这类流用于写入数据,如`ByteArrayOutputStream`将数据写入内存缓冲区,`FileOutputStream`写入...
24. **Java输入/输出流**:`FileInputStream`和`FileOutputStream`是用于处理单个文件的输入/输出流,而`BufferedReader`和`SequenceInputStream`通常用于读取多个源。`SequenceInputStream`可以连接多个输入流,...
15. 合并InputStream:在Java中,可以使用`SequenceInputStream`类将多个InputStream对象合并为一个InputStream对象(选项:SequenceInputStream)。 16. 类修饰符:在定义类头时,可以使用的修饰符包括public、...
- 输入流:ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream和SequenceInputStream。 - 输出流:ByteArrayOutputStream、FileOutputStream、PipedOutputStream和...
RandomAccessFile) 13、正确答案:(SequenceInputStream) 14、正确答案:(字节流、字符流) 15、正确答案:(Collections、Arrays) 16、正确答案:(put()、get(Object key)) 17、正确答案:(ListIterator) 18、正确...
* SequenceInputStream:把多个 InputStream 合并为一个 InputStream * ByteArrayOutputStream:把信息存入内存中的一个缓冲区中 * FileOutputStream:把信息存入文件中 * PipedOutputStream:实现了 pipe 的概念,...
`SequenceInputStream`:允许将多个输入流连接在一起,如同一个连续的流。 `PushbackInputStream`:提供了“回推”功能,可以将已读取但还未处理的字节放回流的开头。 9.2.3 字符流类 字符流主要涉及`Reader`和`...