Java SequenceInputStream类

Java SequenceInputStream类用于从多个流中顺序读取数据。它按顺序逐个读取数据。

Java SequenceInputStream类声明

让我们看一下Java.io.SequenceInputStream类的声明:

public class SequenceInputStream extends InputStream

SequenceInputStream类的构造方法

ConstructorDescription
SequenceInputStream(InputStream s1, InputStream s2)通过按顺序读取两个输入流的数据来创建一个新的输入流,首先是 s1,然后是 s2。
SequenceInputStream(Enumeration e)通过读取类型为 InputStream 的枚举的数据来创建新的输入流。

SequenceInputStream类的方法

Java SequenceInputStream示例

package com.javatpoint;  
  
import java.io.*;  
class InputStreamExample {    
  public static void main(String args[])throws Exception{    
   FileInputStream input1=new FileInputStream("D:\\testin.txt");    
   FileInputStream input2=new FileInputStream("D:\\testout.txt");    
   SequenceInputStream inst=new SequenceInputStream(input1, input2);    
   int j;    
   while((j=inst.read())!=-1){    
    System.out.print((char)j);    
   }    
   inst.close();    
   input1.close();    
   input2.close();    
  }    
}    

在此示例中,我们打印了两个文件testin.txt和testout.txt的数据。

假设您有两个文件:testin.txt和testout.txt,其中包含以下信息:

testin.txt:

Welcome to Java IO Programming.

testout.txt:

It is the example of Java SequenceInputStream class.

执行程序后,将获得以下输出:

输出:

Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.

从两个文件读取数据并写入另一个文件的示例

在此示例中,我们将两个文件testin1.txt和testin2.txt的数据写入另一个名为testout.txt的文件。

package com.javatpoint;  
  
import java.io.*;    
class Input1{    
  public static void main(String args[])throws Exception{    
   FileInputStream fin1=new FileInputStream("D:\\testin1.txt");    
   FileInputStream fin2=new FileInputStream("D:\\testin2.txt");    
   FileOutputStream fout=new FileOutputStream("D:\\testout.txt");      
   SequenceInputStream sis=new SequenceInputStream(fin1,fin2);    
   int i;    
   while((i=sis.read())!=-1)    
   {    
     fout.write(i);        
   }    
   sis.close();    
   fout.close();      
   fin1.close();      
   fin2.close();       
   System.out.println("Success..");  
  }    
}    

输出:

Succeess...

testout.txt:

Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.  

使用枚举读取数据的SequenceInputStream示例

如果我们需要从多于两个文件中读取数据,我们需要使用枚举(Enumeration)。可以通过调用Vector类的elements()方法获取Enumeration对象。让我们看一个简单的例子,从4个文件a.txt、b.txt、c.txt和d.txt中读取数据。

package com.javatpoint;  
import java.io.*;    
import java.util.*;    
class Input2{    
public static void main(String args[])throws IOException{    
//为所有文件创建FileInputStream对象      
FileInputStream fin=new FileInputStream("D:\\a.txt");    
FileInputStream fin2=new FileInputStream("D:\\b.txt");    
FileInputStream fin3=new FileInputStream("D:\\c.txt");    
FileInputStream fin4=new FileInputStream("D:\\d.txt");    
//为所有流创建Vector对象     
Vector v=new Vector();    
v.add(fin);    
v.add(fin2);    
v.add(fin3);    
v.add(fin4);              
//调用elements方法创建枚举对象
Enumeration e=v.elements();      
//在构造函数中传递枚举对象    
SequenceInputStream bin=new SequenceInputStream(e);    
int i=0;      
while((i=bin.read())!=-1){    
System.out.print((char)i);    
}     
bin.close();    
fin.close();    
fin2.close();    
}    
}    

a.txt、b.txt、c.txt和d.txt的内容如下:

a.txt:

Welcome

b.txt:

to

c.txt:

java

d.txt:

programming

输出:

Welcometojavaprogramming

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想