[Java] 다양한 타입의 입출력 - char

Hyo Kyun Lee·2022년 2월 3일
0

Java

목록 보기
39/61
post-custom-banner

1. 다양한 타입의 입출력 - char

일전 file type과 마찬가지로, char(문자열) type의 변수를 입력받을 수도 있다.

  • character에 대한 입출력 클래스는 Reader, writer로 명명이 끝난다.
  • 기본적으로 I/O Stream은 decorator pattern 이므로, 객체에 또다른 객체를 추가적으로 첨가할 수 있다(기능을 동적으로 첨가하여, 확장에 용이).
  • resource와 기능이 분리되어 클래스가 제공된다고 생각하면 쉽다.

1-1. 시스템 입력 및 console 출력을 통한 char type I/O

  • 시스템적으로 입력받은 문자열을 console로 출력하기 위해서 각각 System.in과 BufferedReader() 메소드를 사용한다.
  • **단 BufferedReader() 메소드는 Reader type만 읽어올 수 있는 특성상, 입력받은 문자열을 Reader 형태로 변환하는 InputStreamReader 메소드를 사용한다.
import java.io.BufferedReader;

public class charIO{
	public void main(String[] args){
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
        //System input을 Reader 형태로 반환하여, 최종적으로 입력한 문자열이 br에 저장
        String str = null;
        
        try{
        	str = br.readline();
        }catch(Exception e){
        	e.printStachTrace();
        }
    }
}

1-2. file을 통한 char type I/O

일전 file Input, output stream을 사용하였을 때와 마찬가지로 decorator pattern으로 file input과 관련된 객체를 누락없이 생성자에 작성한다.

writer 역시 파일을 생성할 경로와 파일명을 작성해주어야 하고, 누락되어있다면 현재 경로의 하위 디렉토리에 파일이 생성된다.

import java.io.BufferedReader;
import java.io.fileReader;

public class IOEaxm{
	public static void main(String[] args){
		BufferedReader br = null;
        PrinterWriter pw = null;
        
        try{
        //file 읽기
        	br = new BufferedReader(new FileReader("file.txt"));
       	//file write, br의 data를 읽어서 file writer를 통해 출력할 예정
            pw = new PrinterWriter(new FileWriter("file.txt"));
        }catch(Exception e){
			e.printStackTrace();
        }finally{ //반드시 객체 폐기처리
        	pw.close();
            try{
            	br.close();
            }catch(Exception e){
				e.printStackTrace();
            }
        }
        String str = null;
        while(str = br.readline() != null){
        	pw.println(str); //file이 생성되면서 해당 str 내용을 그대로 출력
        }
    }
}

※ BuffereredReader는 exception 처리를 하는 try-catch 문으로 작성해주어야 하며, 사용한 객체는 반드시 close() 메소드를 통해 폐기처리한다.

2. 참조자료

프로그래머스 강의 - Char 단위 입출력 메소드
https://programmers.co.kr/learn/courses/9/lessons/320

post-custom-banner

0개의 댓글