Char 단위 입출력(Console)
- char단위 입출력 클래스는 클래스 이름이 Reader나 Writer로 끝이 난다
- char단위 입출력 클래스를 이용해서 키보드로부터 한줄 입력 받아서 콘솔에 출력
- System.in - 키보드를 의미(InputStream)
- BufferedReader - 한줄씩 입력 받기위한 클래스
- BufferedReader 클래스의 생성자는 InputStream을 입력받는 생성자가 없다
- System.in은 InputStream 타입이므로 BufferedReader의 생성자에 바로 들어갈 수 없으므로 InputStreamReader 클래스를 이용해야함
ex)
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class CharIOExam01 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//System.in을 사용하기 위해 InputStreamReader클래스를 이용해야함
//키보드로 입력받은 문자열을 저장하기 위해 line변수를 선언
String line = null;
try {
line = br.readLine()
} catch (IOException e) {
e.printStackTrace();
}
///try-with-resources구문을 통해 close()를 사용하지 않음
//콘솔에 출력
System.out.println(line);
}
}
Char 단위 입출력(File)
- char단위 입출력 클래스는 클래스 이름이 Reader나 Writer로 끝이 난다
- 파일에서 읽기위해 FileReader 사용
- 한 줄 읽어 들이기 위해 BufferedReader클래스 이용
- BufferedReader 클래스가 가지고 있는 readLine() 메소드가 한줄씩 읽게 해준다
- 더 이상 읽을 내용이 없을 때 null을 return한다
- 파일에 쓰기 위해 FileWriter 클래스 이용
- 편리하기 출력하기 위해서 PrintWriter 클래스 이용
- PrintWriter란 ?
- PrintWriter는 스트림에 있는 개체의 형식화된 표현을 텍스트 출력으로 인쇄합니다
- PrintWriter클래스의 생성자에는 FileNotFoundException예외를 발생하기 때문에 반드시 예외처리를 해야한다
ex)
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class CharIOExam02 {
public static void main(String[] args) {
BufferedReader br = null; //한 줄 읽어들이기 위해 사용
PrintWriter pw = null; //편리하게 출력하기 위해
try{
br = new BufferedReader(new FileReader("src/javaIO/exam/CharIOExam02.java"));
pw = new PrintWriter(new FileWriter("test.txt"));
String line = null;
while((line = br.readLine())!= null){
pw.println(line);
}
}catch(Exception e){
e.printStackTrace();
//예외처리
}finally {
pw.close();
//작성을 멈춘다
try {
br.close();
//read를 멈춘다
} catch (IOException e) {
e.printStackTrace();
//예외처리
}
}
}
}
* 위 게시물은 프로그래머스<자바중급>강의를 복습하며 작성한 글입니다*
'JAVA' 카테고리의 다른 글
JAVA(2022.05.31) - Thread (0) | 2022.05.31 |
---|---|
JAVA(2022.05.30) - Annotation(어노테이션) (0) | 2022.05.30 |
JAVA(2022.05.28) - 다양한 타입의 출력(DataOutputStream, DataInputStream) (0) | 2022.05.28 |
JAVA(2022.05.27) - Byte 단위 입출력 심화 (0) | 2022.05.27 |
JAVA(2022.05.26) - Byte단위 입출력 (0) | 2022.05.26 |