Java SequenceInputStream
类
原文:https://www.studytonight.com/java-file-io/java-sequenceinputstream-class
在本教程中,我们将学习 Java 中的 SequenceInputStream 类。此类用于从多个流中读取数据。顾名思义,它按顺序读取数据,意思是一个接一个。
Java 序列输出流类声明
这是 SequenceInputStream 类的声明,我们可以看到 InputStream 类是在这个类中继承的。
public class SequenceInputStream extends InputStream
SequenceInputStream 类的构造器
构造器 | 描述 |
---|---|
SequenceInputStream(InputStream s1, InputStream s2) |
它通过按顺序读取两个输入流的数据来创建新的输入流,首先是 s1,然后是 s2。 |
SequenceInputStream(Enumeration e) |
它通过读取类型为 input stream 的枚举的数据来创建新的输入流。 |
序列输出流类的方法
方法 | 描述 |
---|---|
int read() |
它用于从输入流中读取下一个字节的数据。 |
int read(byte[] ary, int off, int len) |
它用于将输入流中的大量数据读入字节数组。 |
int available() |
它用于返回可从输入流中读取的最大字节数。 |
void close() |
它用于关闭输入流。 |
Java 序列输出流示例
在下面给出的例子中,我们使用SequenceInputStream
类从两个文件中读取数据。对于这两个文件,我们为两个文件创建了 FileInputStream 的两个对象,并将它们传递给SequenceInputStream
类的构造器。现在使用read()
方法,我们逐个读取两个文件的数据。我们可以看到这个程序的输出是两个文件的内容。
import java.io.FileInputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
FileInputStream fileInputStream1=new FileInputStream("E:\\studytonight\\myfile1.txt");
FileInputStream fileInputStream2=new FileInputStream("E:\\studytonight\\myfile2.txt");
SequenceInputStream inst=new SequenceInputStream(fileInputStream1, fileInputStream2);
int c;
while((c=inst.read())!=-1)
{
System.out.print((char)c);
}
inst.close();
fileInputStream1.close();
fileInputStream2.close();
}
}
1234567890ABCDEFGHIJKL
我的文件 1.txt
1234567890
我的文件 2.txt
ABCDEFGHIJKL
从两个文件中读取数据并写入另一个文件的示例
在给出的例子中,我们将从两个文件中读取数据,并将相同的数据存储到output.txt
文件中。为了读取数据,我们需要一个用于相应文件的FileInputStream
类的对象。为了从该文件中顺序读取,我们将使用SequenceInputStream
类并使用read()
方法从这些文件中读取内容,并使用FileOutputStram
类的write()
方法将其写入output.txt
文件。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
FileInputStream fileInputStream1=new FileInputStream("E:\\studytonight\\myfile1.txt");
FileInputStream fileInputStream2=new FileInputStream("E:\\studytonight\\myfile2.txt");
FileOutputStream fout=new FileOutputStream("E:\\studytonight\\output.txt");
SequenceInputStream sis=new SequenceInputStream(fileInputStream1, fileInputStream2);
int i;
while((i=sis.read())!=-1)
{
fout.write(i);
}
sis.close();
fout.close();
fileInputStream1.close();
fileInputStream2.close();
System.out.println("Data is written to the file successfully...");
}
}
数据成功写入文件...
我的文件 1.txt
1234567890
我的文件 2.txt
ABCDEFGHIJKL
输出. txt
1234567890ABCDEFGHIJKL
结论
在本教程中,我们学习了如何使用 SequenceInputStream 类从文件中顺序读取数据。此类用于从多个流中读取数据。顾名思义,它按顺序读取数据,意思是一个接一个。