일전 file type과 마찬가지로, char(문자열) type의 변수를 입력받을 수도 있다.
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();
}
}
}
일전 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() 메소드를 통해 폐기처리한다.
프로그래머스 강의 - Char 단위 입출력 메소드
https://programmers.co.kr/learn/courses/9/lessons/320