산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java ByteArrayOutputStream 마스터하기: 메서드, 사용법, 실전 예제

Java ByteArrayOutputStream 마스터하기

이 튜토리얼은 Java의 ByteArrayOutputStream, 핵심 메서드, 실전 예제를 탐구하여 바이트 수준 출력을 효율적으로 작성하는 데 도움을 줍니다.

java.io 패키지의 ByteArrayOutputStream 클래스는 필요에 따라 자동으로 늘어나는 내부 바이트 배열에 데이터를 쓸 수 있게 합니다. 추상 OutputStream 클래스를 확장하여 메모리 내 바이트 조작을 위한 다재다능한 도구가 됩니다.

참고: 클래스는 주문형으로 확장되는 내부 버퍼를 유지하므로, 정확한 크기를 알지 않는 한 용량을 미리 정의할 필요가 없습니다.


ByteArrayOutputStream 생성하기

ByteArrayOutputStream을 생성하려면 java.io.ByteArrayOutputStream을 임포트하고 인스턴스화합니다. 기본적으로 버퍼는 32바이트에서 시작합니다:

// 기본 크기
ByteArrayOutputStream out = new ByteArrayOutputStream();

큰 페이로드가 예상된다면 초기 용량을 지정할 수도 있습니다:

// 커스텀 크기
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);

size 매개변수는 바이트 단위의 초기 버퍼 길이를 설정합니다.


ByteArrayOutputStream의 핵심 메서드

OutputStream 구현체로서 ByteArrayOutputStream은 몇 가지 필수 메서드를 제공합니다:

write() 메서드

예제: ByteArrayOutputStream에 데이터 쓰기

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String data = "This is a line of text inside the string.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            byte[] array = data.getBytes();
            out.write(array);
            String streamData = out.toString();
            System.out.println("Output stream: " + streamData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

실행 결과

Output stream: This is a line of text inside the string.

이 예제에서 write()는 바이트 배열을 스트림으로 전송하고, toString()은 누적된 데이터를 텍스트로 조회합니다.


ByteArrayOutputStream에서 데이터 접근하기

아래는 두 메서드 모두를 시연합니다:

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String data = "This is data.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out.write(data.getBytes());
            byte[] byteData = out.toByteArray();
            System.out.print("Data using toByteArray(): ");
            for (int i = 0; i < byteData.length; i++) {
                System.out.print((char) byteData[i]);
            }
            String stringData = out.toString();
            System.out.println("\nData using toString(): " + stringData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

실행 결과

Data using toByteArray(): This is data.
Data using toString(): This is data.

여기서는 표시를 위해 각 바이트를 문자로 캐스팅하여, 내부 배열이 텍스트에 어떻게 매핑되는지 보여줍니다.


close() 메서드

ByteArrayOutputStream에서 close()를 호출해도 악영향은 없습니다. 스트림은 이후에도 계속 사용할 수 있습니다. 이 동작은 외부 자원 해제가 필요 없는 메모리 내 버퍼 설계와 일치합니다.


추가 메서드

메서드설명
size()현재까지 작성된 바이트 수를 반환합니다.
flush()내부 버퍼를 리셋하여 스트림을 효과적으로 비웁니다.

더 고급 사용법은 공식 Java SE 문서를 참조하세요.

Java ByteArrayOutputStream (공식 문서)

java

  1. Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용
  2. Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지
  3. Java 상속 마스터: 개념, 종류, 실전 예제 총정리
  4. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  5. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  6. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  7. Java 리플렉션 마스터: 런타임에 클래스, 메서드, 필드 검사 및 조작
  8. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제
  9. Java 제네릭 마스터하기: 재사용 가능하고 타입 안전한 코드 작성
  10. java.io로 Java 파일 작업 마스터하기 – 생성, 읽기, 쓰기 및 삭제