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

Java StringReader 클래스란? 개념과 주요 메서드, 사용 예제

StringReader 클래스는 Reader 클래스의 하위 클래스로, 문자열을 입력 소스로 삼아 문자 스트림(character stream)을 읽을 때 사용됩니다. 즉, 파일이나 네트워크가 아닌 메모리에 있는 문자열 자체를 스트림처럼 다룰 수 있게 해주는 클래스입니다. StringReader는 Reader 클래스가 제공하는 모든 메서드를 오버라이드(재정의)하며, 대표적인 메서드로는 skip(), close(), mark(), markSupported(), reset() 등이 있습니다.

문법(Syntax)

public class StringReader extends Reader

StringReader는 내부적으로 문자열을 저장해 두었다가, read() 메서드가 호출될 때마다 한 글자씩 순차적으로 반환합니다. 더 이상 읽을 데이터가 없으면 -1을 반환하기 때문에 반복문과 함께 사용하면 문자열 전체를 간편하게 처리할 수 있습니다. 실제 입출력 장치와 연결되지 않으므로 단위 테스트 작성이나 가벼운 문자열 파싱 작업에 특히 유용합니다.

예제(Example)

import java.io.StringReader;
import java.io.IOException;

public class StringReaderTest {
    public static void main(String[] args) {
        String str = "Welcome to Tutorials Point";
        StringReader strReader = new StringReader(str);
        try {
            int i;
            while ((i = strReader.read()) != -1) {
                System.out.print((char) i);
            }
        } catch (IOException ioe) {
            System.out.println(ioe);
        } finally {
            if (strReader != null) {
                try {
                    strReader.close();
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
        }
    }
}

실행 결과(Output)

Welcome to Tutorials Point

위 예제에서는 문자열 "Welcome to Tutorials Point"를 StringReader 객체로 감싼 뒤, while 반복문 안에서 read() 메서드를 호출해 문자를 하나씩 읽어 콘솔에 출력합니다. read() 메서드는 스트림의 끝에 도달하면 -1을 반환하므로, 이 값을 조건으로 사용해 반복을 종료합니다. 마지막에는 finally 블록에서 close() 메서드를 호출하여 리소스를 안전하게 해제하는 것이 바람직한 코딩 습관입니다.