반응형
Intro
최근에 업로드한 게시글인 Socket 관련하여 프로젝트를 만들어 보는 중 기본적인 클래스들에 대한 기초 지식이 부족한 것 같다는 생각이 들어 BufferedReader와 BufferedWriter에 관한 간단한 예제와 함께 설명 드리려 합니다.
BufferedReader와 BufferedWriter는 자바의 I/O 패키지에 있는 클래스 중 하나로,
각각 입력과 출력 스트림을 버퍼링하여 입출력 속도를 향상시키는 역할을 합니다 .
BufferedReader
- BufferedReader는 파일의 내용을 읽기 위해 사용됩니다. FileReader 클래스를 사용하여 파일을 열고, BufferedReader 클래스를 사용하여 파일에서 읽어온 데이터를 버퍼링합니다.
try {
BufferedReader reader = new BufferedReader(new FileReader("example.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
- readLine() 메서드를 사용하여 파일에서 한 줄씩 읽어옵니다. 파일의 끝까지 읽었을 경우에는 null을 반환하므로,
이를 체크하여 반복문을 종료합니다. - 파일 읽기가 끝났으면 close() 메서드를 사용하여 BufferedReader를 닫습니다.
BufferedWriter
- BufferedWriter는 파일에 내용을 쓰기 위해 사용됩니다. FileWriter 클래스를 사용하여 파일을 열고, BufferedWriter 클래스를 사용하여 데이터를 버퍼링합니다.
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"));
writer.write("Hello World!");
writer.newLine();
writer.write("This is an example of BufferedWriter.");
writer.newLine();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
- write() 메서드를 사용하여 파일에 문자열을 씁니다. newLine() 메서드를 사용하여 줄바꿈을 추가할 수 있습니다.
- 파일 쓰기가 끝났으면 close() 메서드를 사용하여 BufferedWriter를 닫습니다.
Stream
- BufferedReader와 BufferedWriter에 대해 공부하던 중 Stream에 대한 내용이 자주 나왔습니다. 마찬가지로 무엇인지는 알지만 정확히 설명할 수 없는 얕은 지식이었기에 추가로 알아본 정보를 정리해서 알려드리겠습니다.
- 스트림(Stream)은 데이터의 흐름을 추상화한 개념으로, 입출력(I/O)이나 컬렉션을 다룰 때 사용됩니다.
- 자바에서의 스트림은 크게 두 가지 종류로 나눌 수 있습니다.
- 입출력 스트림
- 파일, 네트워크 등에서 데이터를 읽거나 쓰기 위해 사용됩니다.
- InputStream, OutputStream, Reader, Writer 등이 이에 해당됩니다.
- 컬렉션 스트림
- 컬렉션 객체에 저장된 데이터를 처리하기 위해 사용됩니다.
- Stream 클래스와 그 하위 클래스들이 이에 해당됩니다.
- 입출력 스트림
위의 설명으로 보았을 때, BufferedReader와 BufferedWriter에서 이야기하는 Stream은 1번 입출력 스트림이라는 것을 알 수 있습니다.
반응형
'Language > Java' 카테고리의 다른 글
[Java] public, private, protected 접근 제어자란? (0) | 2023.05.17 |
---|---|
[Java] Try-Catch 사용법(예제 포함) 및 주의점 (0) | 2023.05.16 |
[Java] Socket 통신 간단 예제 (0) | 2023.05.08 |
[Java] 실무에서 사용하는 코딩 (0) | 2022.07.28 |
[Java] SimpleDateFormat 사용법 - 날짜 형식 지정 (0) | 2022.02.15 |