판봉 개발 일기

문자 출력 스트림 : Writer 본문

자바 복습

문자 출력 스트림 : Writer

판봉 2021. 7. 14. 14:17
728x90

모든 문자 기반의 출력 스트림 또한 바이트 기반의 출력 스트림과 비슷하게 Writer 클래스를 상속받아서 만들어집니다.

다음 표는 Writer 클래스의 주요 메소드가 서술되어 있습니다.

리턴 타입 메소드 설명
void write(int c) 매개값으로 주어진 한 문자를 보냄
void write(char[] cbuf) 매개값으로 주어진 배열의 모든 문자를 보냅니다.
void write(char[] cbuf, int off, int len) 매개값으로 주어진 배열에서 cbuf[off]부터 len개까지의 문자를 보냅니다.
void write(String str) 매개값으로 주어진 문자열을 보냅니다
void write(String str, int off, int len) 매개값으로 주어진 문자열에서 off순번부터 len개까지의 문자를 보냅니다.
void flush() 버퍼에 잔류하는 모든 문자를 출력
void close() 출력 스트림을 닫습니다.

write(int c) 메소드

write(int c)메소드는 매개 변수로 주어지는 int(4byte)에서 끝 2byte(1개의 문자)만 출력 스트림으로 보냅니다.

매개 변수가 int타입이므로 4byte 모두를 보내는 것은 아닙니다.(이점을 바이트기반과 동일)

※차이점이 있다면 바이트 기반은 1byte 문자 기반은 2byte를 출력스트림으로 보낸다는 차이점이 있습니다.

 

다음 코드는 위 메소드를 사용한 코드입니다.

 

import java.io.FileWriter;
import java.io.Writer;

public calss writeExample {
	public static void main(String[] args) throws Exception {
    Writer writer = new FileWriter("C:/Temp/test7.txt";
    
    char a = 'A'; //char 형이랑 ''사용
    char b = 'B';
    char c = 'C';
    
    writer.write(a);
    writer.write(b);
    writer.write(c); // 한 문자씩 출력
    
    writer.flush(); // 출력 스트림 이기 때문에 잔류 버퍼에 잔류하는 모든 문자 출력
    writer.close()
    }
}

write(char[] cbuf) 메소드

write(char[] cbu) 메소드는 매개값으로 주어진 char배열의 모든 문자를 출력 스트림으로 보냅니다.

다음 코드는 위를 활용한 코드입니다.

import java.io.FileWriter;
import java.io.Writer;

public class WriteExample {
	public static void main(String[] args) throws Exception {
    	Writer writer = new FileWriter("C:/Temp/test8.txt");
        
        char[] array = { 'A', 'B', 'C' };
        
        writer.write(array); 배열의 모든 문자를 출력
        
        writer.flush();
        writer.close();
    }
}

write(char[] cbuf, int off, int len)메소드

write(char[] cbuf, int off, int len)메소드는 c[off]부터 len개의 문자를 출력 스트림으로 보냅니다.

다음 코드는 위를 활용한 예제입니다.

import java.io.FileWriter;
import java.io.Writer;

public class WriteExample {
	public static void main(String[] args) throws exException {
    	Writer writer = new FileWriter("C:/Temp/test9.txt");
        
        char[] array = { 'A', 'B', 'C', 'D', 'E' };
        
        writer.write(array, 1, 3); //1번인덱스부터 3개를 출력
        
        writer.flush();
        writer.close();
    }
}

write(String str)와 write(String str, int off, int len) 메소드

Writer는 문자열을 더 쉽게 보내기 위해 wrtie(String str)와 write(String str, int off, int len) 메소드를 제공합니다.

전자는 문자열 전체를 출력 스트림으로 보내는 것이며, 후자는 주어진 문자열 off순번부터 len개 까지의 문자를 보냅니다.

다음 코드를 위를 활용한 코드입니다.

import java.io.FileWriter;
import java.io.Writer;

public class WriteExample {
	public static void main(String[] args) throws Exception {
    	Writer writer = new FileWriter("C:/Temp/test10.txt");
        
        String str = "ABC";
        
        wrtier.write(str); //문자열 전체 출력
        
        writer.flush();
        writer.close();
    }
}

판봉의 오늘의 한줄평

출력 스트림은 flsuh() 메소드가 존재하며 문자 기반출력은 2byte 바이트 기반출력은 1byte가 포인트라고 생각한다.

'자바 복습' 카테고리의 다른 글

보조 스트림  (0) 2021.07.15
문자 입력 스트림 Reader  (0) 2021.07.15
바이트 입력 스트림 : InputStream  (0) 2021.07.14
바이트 출력 스트림 : OutputStream  (0) 2021.07.14
입출력 스트림  (3) 2021.07.14