JAVA/포스팅

자바 SequenceInputStream

짜집퍼박사(짜박) 2023. 11. 26. 02:23

SequenceInputStream 클래스는 두 개의 입력 스트림을 연속적으로 연결하여 하나의 입력 스트림으로 만들어주는 클래스입니다. 이 클래스는 여러 개의 입력 스트림을 하나로 연결하여 연속적으로 데이터를 읽을 수 있도록 합니다.

SequenceInputStream 클래스는 주로 여러 개의 입력 소스를 하나의 스트림으로 묶어서 데이터를 읽을 때 사용됩니다. 예를 들어, 두 개의 파일을 읽어야 할 때 이 두 파일을 하나의 SequenceInputStream으로 묶어서 사용할 수 있습니다.

 

다음은 SequenceInputStream의 생성자와 주요 메서드 몇 가지입니다.

 

생성자

- SequenceInputStream(InputStream s1, InputStream s2): 두 개의 입력 스트림 s1과 s2를 연속적으로 연결합니다.
- SequenceInputStream(Enumeration<? extends InputStream> e): Enumeration을 사용하여 여러 개의 입력 스트림을 연속적으로 연결합니다.

 

주요 메서드

- int read(): 현재 위치의 바이트를 읽습니다. 더 이상 읽을 데이터가 없으면 -1을 반환합니다.
- int read(byte[] b, int off, int len): 바이트 배열에 최대 len만큼의 데이터를 읽어서 저장하고 실제로 읽은 바이트 수를 반환합니다.

 

다음은 SequenceInputStream의 간단한 예제입니다.

import java.io.*;

public class SequenceInputStreamExample {
    public static void main(String[] args) {
        try {
            // 두 개의 파일을 읽을 FileInputStream 생성
            FileInputStream fileInputStream1 = new FileInputStream("file1.txt");
            FileInputStream fileInputStream2 = new FileInputStream("file2.txt");

            // 두 개의 FileInputStream을 SequenceInputStream으로 연결
            SequenceInputStream sequenceInputStream = new SequenceInputStream(fileInputStream1, fileInputStream2);

            // SequenceInputStream으로부터 데이터 읽기
            int data;
            while ((data = sequenceInputStream.read()) != -1) {
                System.out.write(data);
            }

            // 스트림 닫기
            sequenceInputStream.close();
            fileInputStream1.close();
            fileInputStream2.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 file1.txt와 file2.txt 두 개의 파일을 FileInputStream으로 열고, 이 두 스트림을 SequenceInputStream으로 연결하여 데이터를 읽고 출력하고 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 Reader  (0) 2023.11.26
자바 PrintStream  (0) 2023.11.26
자바 DataOutputStream  (0) 2023.11.26
자바 DataInputStream  (0) 2023.11.26
자바 BufferedOutputStream  (0) 2023.11.26