Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java StringWriter란 무엇일까? 개념과 주요 메서드 총정리


StringWriter 클래스는 Writer 클래스의 하위 클래스로, 문자열을 출력 스트림(output stream)에 기록하는 역할을 담당합니다. 이 문자 스트림은 문자열을 쓸 때 데이터를 내부의 StringBuffer(문자열 버퍼)에 차곡차곡 모아두었다가 하나의 완성된 문자열로 구성합니다. StringWriter의 버퍼는 저장되는 데이터 양에 따라 자동으로 확장되기 때문에 미리 용량을 지정할 필요가 없다는 점이 큰 장점입니다.

주요 메서드

  • write(): 문자열 또는 단일 문자를 내부 버퍼에 기록합니다.
  • append(): CharSequence 형태의 문자열을 버퍼의 끝에 추가합니다.
  • getBuffer(): StringWriter가 내부적으로 사용하는 StringBuffer 객체를 그대로 반환합니다.
  • flush(): 스트림을 플러시합니다.
  • close(): 스트림을 닫습니다. StringWriter는 close() 호출 이후에도 getBuffer()를 사용할 수 있어 안전합니다.

구문

public class StringWriter extends Writer

예제 코드

import java.io.*;
public class StringWriterTest {
    public static void main(String args[]) {
        String str = "Welcome to Tutorials Point";
        try {
            StringWriter sw = new StringWriter();
            sw.write(str);
            StringBuffer sb = new StringBuffer();
            sb = sw.getBuffer();
            System.out.println("StringBuffer: "+ sb);
            System.out.println("String written by StringWriter: "+ sw);
            sw.close();
        } catch (IOException ioe) {
            System.out.println(ioe);
        }
    }
}

실행 결과

StringBuffer: Welcome to Tutorials Point
String written by StringWriter: Welcome to Tutorials Point

위 예제처럼 StringWriter는 write() 메서드로 문자열을 버퍼에 기록한 뒤, getBuffer()를 통해 해당 내용을 StringBuffer 형태로 손쉽게 꺼내올 수 있습니다. 파일이나 네트워크 같은 실제 입출력 대상 없이 문자열 조립이 필요할 때 유용하게 활용됩니다.