[Java] 문자 입출력 스트림

Bam·2024년 3월 23일
0

Java

목록 보기
89/98
post-thumbnail

문자 입출력 스트림

문자 입출력 스트림은 오직 문자만을 입출력할 목적으로 사용되는 스트림입니다. 그렇기 때문에 사용 방법은 바이트 스트림과 동일하지만 입출력 단위가 바이트가 아닌 문자라는 차이점만 있습니다.


문자 출력 스트림

Write는 문자 출력 스트림의 최상위 클래스이자 추상 클래스입니다. 이 클래스를 상속해 FileWriter, BufferedWriter, PrintWriter, OutputWriter가 있습니다.

Write 클래스는 문자 출력 스트림 클래스에서 공통적으로 사용되는 메소드들을 가지고 있습니다.

메소드설명
write(int c)문자 c를 출력
write(char[] c)배열 c의 모든 문자 c를 출력
write(char[] c, int off, int len)배열 c의 c[off]부터 len개 출력
write(String str)문자열 str 출력
write(String str, int off, int len)문자열 str의 off부터 len개 출력
flush()버퍼에 잔류한 모든 문자 출력
close()출력 스트림을 종료하고 메모리 해제

다음은 문자 출력 스트림을 이용해서 문자 배열과 문자열을 출력하는 예제코드입니다.

public class Main {
    public static void main(String[] args) throws IOException {
        Writer writer = new FileWriter("test2.db");
        char[] c = {'A', 'B', 'C'};
        writer.write(c);

        String str = "Hello";
        writer.write(str);

        writer.flush();
        writer.close();
    }
}

위 코드의 실행 결과로 프로젝트 디렉토리 내에 test2.db가 생성되었을 것 입니다.


문자 입력 스트림

Reader는 문자 입력 스트림의 최상위 클래스이자 추상 클래스입니다. 이 클래스를 상속한 FileReader, BufferedReader, InputStreamReader가 있습니다.

Reader 클래스에는 문자 입력 스트림에서 공통적으로 사용되는 메소드들이 정의되어 있습니다.

메소드설명
int read()1개의 문자를 읽고 반환
int read(char[] c)읽은 문자들을 배열 c에 저장하고 읽은 문자 개수 반환
void close()입력 스트림을 종료하고 메모리 해제

다음 코드는 위에서 만들었던 test2.db를 한 개씩 읽고 출력하는 예제입니다.

public class Main {
    public static void main(String[] args) throws IOException {
        Reader reader = new FileReader("test2.db");

        while(true) {
            int data = reader.read();

            if (data == -1) {
                break;
            }
            else {
                System.out.print((char) data);
            }
        }
        reader.close();
    }
}

0개의 댓글