个性化阅读
专注于IT技术分析

Java SequenceInputStream类

本文概述

Java SequenceInputStream类用于从多个流中读取数据。它顺序读取数据(一一读取)。

Java SequenceInputStream类声明

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

public class SequenceInputStream extends InputStream

SequenceInputStream类的构造方法

建设者 描述
SequenceInputStream(InputStream s1, InputStream s2) 通过依次读取两个输入流的数据s1和s2创建新的输入流。
SequenceInputStream(Enumeration e) 通过读取类型为InputStream的枚举的数据来创建新的输入流。

SequenceInputStream类的方法

方法 描述
int read() 它用于从输入流中读取下一个数据字节。
int read(byte[] ary, int off, int len) 它用于将len个字节的数据从输入流读取到字节数组中。
int available() 它用于返回可从输入流读取的最大字节数。
void close() 它用于关闭输入流。

Java SequenceInputStream示例

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

package com.srcmini;

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:

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.srcmini;

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()方法获得。让我们看一个简单的示例, 其中我们从4个文件中读取数据:a.txt, b.txt, c.txt和d.txt。

package com.srcmini;
import java.io.*;  
import java.util.*;  
class Input2{  
public static void main(String args[])throws IOException{  
//creating the FileInputStream objects for all the files  
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");  
//creating Vector object to all the stream  
Vector v=new Vector();  
v.add(fin);  
v.add(fin2);  
v.add(fin3);  
v.add(fin4);            
//creating enumeration object by calling the elements method  
Enumeration e=v.elements();    
//passing the enumeration object in the constructor  
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
赞(0)
未经允许不得转载:srcmini » Java SequenceInputStream类

评论 抢沙发

评论前必须登录!