String 출력
`String`타입의 데이터를 파일 출력하는 방식
- 문자열은 객체 출력과 바이트 출력이 모두 가능
- 바이트 출력이 편하지만 변환을 수동으로 해야함
String str = "안녕하세요";
File target = new File("sample", "string4.txt");
FileWriter fw = new FileWriter(target);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
pw.println(str);
pw.println(str);
pw.println(str);
pw.println(100);
pw.println(100+200);
pw.close();
FileWriter
파일에 문자 단위로 데이터를 쓰는 클래스
- 버퍼링을 하지 않아 낮은 성능
FileWriter fw = new FileWriter(target);
BufferedWriter
버퍼링된 문자 출력 스트림을 제공하는 클래스
- 버퍼링을 하여 한 번에 출력하기 때문에 성능 향상
- 데이터를 직접 쓰지 않고 버퍼에 쌓인 후 배치 단위로 씀
- `FileWriter`와 같이 쓰임
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter
문자 출력 스트림을 제공하는 클래스
- 자동으로 `flush()`를 수행하여 데이터를 버퍼에 저장하고 자동으로 출력
- `FileWriter`, `BufferedWriter`와 같이 쓰임
PrintWriter pw = new PrintWriter(bw);
.println()
파일에 문자열을 출력하는 메서드
pw.println(str)
.close()
문자 출력 통로를 해제하는 클래스
pw.close()
String 입력
`String`타입의 데이터를 파일에서 입력받는 방식
- line이 null이면 `EOF` 처리
File target = new File("sample", "string4.txt");
FileReader fr = new FileReader(target);
BufferedReader br = new BufferedReader(fr);
while(true) {
String line = br.readLine();
if(line == null) break;//EOF(null)
System.out.println("line = " + line);
}
br.close();
FileReader
파일에서 문자 단위 데이터를 읽는 클래스
- 버퍼링을 하지 않아 낮은 성능
FileReader fr = new FileReader(target);
BufferedReader
버퍼링된 문자 입력 스트림을 제공하는 클래스
- 버퍼링을 통해 데이터를 일괄처리하여 성능 향상
- `FileReader`와 같이 쓰임
BufferedReader br = new BufferedReader(fr);
.readLine()
파일을 한 줄씩 읽어 반환하는 메서드
br.readLine()
.close()
문자 입력 통로를 해제하는 메서드
br.close()
표준 입력
`Scanner`가 아닌 `BufferedReader`로 키보드를 통해 입력 가능
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("입력 : ");
String line = br.readLine();
br.close();
System.out.println("입력값 : " + line);
InputStreamReader
바이트 기반의 입력 스트림을 문자 기반의 입력 스트림으로 변환해주는 클래스
- `System.in`을 생성자 인자로 입력받음
- `BufferedReader`에 `InputStreamReader` 객체가 인자로 입력받음
InputStreamReader isr = new InputStreamReader(System.in);
'Java > 파일 입출력' 카테고리의 다른 글
[Java / 파일 입출력] 객체 (1) | 2024.12.27 |
---|---|
[Java / 파일 입출력] 멀티 바이트 (0) | 2024.12.27 |
[Java / 파일 입출력] 싱글 바이트 (1) | 2024.12.27 |
[Java / 파일 입출력] File과 Directory (0) | 2024.12.27 |