Programming Tutorials

SequenceInputStream example program in Java

By: Reema sen in Java Tutorials on 2022-09-15  

The SequenceInputStream class allows you to concatenate multiple InputStreams. The construction of a SequenceInputStream is different from any other InputStream. A SequenceInputStream constructor uses either a pair of InputStreams or an Enumeration of InputStreams as its argument:

SequenceInputStream(InputStream first, InputStream second)
SequenceInputStream(Enumeration streamEnum)

Here is a sample program

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class SequenceInputStreamDemo {

    public static void main(String[] args) throws IOException {
        int c;
        List<String> files = new ArrayList<>();
        files.add("/autoexec.bat");
        files.add("/config.sys");
        InputStream input = sequenceInputStreamFromFiles(files);
        while ((c = input.read()) != -1) {
            System.out.print((char) c);
        }
        input.close();
    }

    private static InputStream sequenceInputStreamFromFiles(List<String> files) throws IOException {
        List<InputStream> inputStreams = new ArrayList<>();
        for (String file : files) {
            inputStreams.add(new FileInputStream(file));
        }
        return new SequenceInputStream(inputStreams.stream());
    }
}

The code demonstrates the use of SequenceInputStream to combine multiple input streams into a single, sequenced input stream.

The InputStreamEnumerator class is an implementation of Enumeration, which is used to iterate over a collection of objects. In this case, it is used to iterate over a Vector of file names and return an InputStream for each file.

The SequenceInputStreamDemo class creates a Vector of file names (/autoexec.bat and /config.sys), creates an InputStreamEnumerator object to iterate over the file names and return an InputStream for each file, and then passes the InputStreamEnumerator object to a SequenceInputStream object. The resulting InputStream combines the individual input streams into a single, sequenced input stream.

The code then reads from the InputStream one character at a time, printing each character to the console, until the end of the stream is reached. Finally, the InputStream is closed.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Java )

Latest Articles (in Java)