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

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /