Archives
Recent Posts
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

개발도생's Blog

[Java][Class] BufferedWriter 본문

Java/Class

[Java][Class] BufferedWriter

개발도생 2022. 12. 15. 15:41

이번에는 BufferedWriter에 대해 공부를 해봤다.

 

BufferedWriter Class는,

BufferedReader Class와 마찬가지로 버퍼(Buffer)에 값을 저장해두었다가 

 

한 번에 값을 반환해주기 때문에 알고리즘 측면에서 효율성이 높다.

 

보통 사용하는 Scanner ClassSystem.out.print는 데이터의 양이 증가할수록 효율이 떨어지기 때문에 

 

많은 양의 데이터를 처리할 때 BufferedWriter Class를 사용한다면 유용할 것이다.

 

 

 


BufferedWriter Class에 대해서

BufferedReader와 BufferedWriter Class는 일반 입출력과는 달리 Buffer공간에 임시로 값을 저장해두었다가 Enter(개행) 혹은 버퍼가 가득 찼을 때 저장된 값을 한 번에 반환해준다.

 

그렇기 때문에 처리 속도에서 차이가 난다는 것을 확인할 수 있는 것이다. 

 

BufferedReader는 입력을 할 때 사용한다면 BufferedWriter는 출력을 할 때 사용한다.

 

버퍼(Buffer)를 사용할 때, InputWtream과 OutputStream을 사용하는 이유입출력 스트림으로 부터 미리 버퍼에 데이터를 담아주기 위해서이다.


BufferedWriter Class 사용법

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

public class BufferedWriter {
   public static void main(String[] args)  throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
    }
}

BufferedWriter는 예외 처리를 필수적으로 해줘야 하며, try & catch 보다는 throws IOException으로 예외처리를 해주는 방법을 더 많이 사용하고 있다.

 

객체 선언은 위와 같은 방법으로 해주면 된다.

    	// write() , flush() , close() 메서드
        String string = "안녕하세요.";		// 출력할 문자열
        
        BufferedWriter.write("string + \n");	// 버퍼에 있는 값 출력
        BufferedWriter.write("반갑습니다.");
        BufferedWriter.flush();			// 남아 있는 데이터를 모두 출력
        BufferedWriter.close();			// 스트림 닫음

BufferedWriter Class에서 제공하고 가장 많이 사용하는 메서드이다.

 

BufferedWriter는 개행을 동시에 해주기 않기 때문에 write() 메서드에 개행을 따로 입력해주거나, 

 

제공된 메서드 중 newLine()를 사용해야 한다.

 

write()메서드를 통해 버퍼에 값을 출력해주고, flush() 메서드를 통해 버퍼에 남아 있는 모든 값들을 출력해준다.

 

사용이 끝난 후에는 close() 메서드를 사용해 스트림을 종료해주어야 한다.

 

위와 같이 입력했을 때 출력되는 값은 예상할 수 있듯,

안녕하세요.
반갑습니다.

위와 같이 출력되는 것을 확인할 수 있다.

 


BufferedWriter Class Method

Method 종류


조금 더 깊숙하게 파고들어 공부한다면 더 많은 내용들을 알 수 있을 거 같다.

 

혹시나 더 많은 정보를 공유해주실 수 있거나, 해당 클래스에 중요한 내용이 빠져있다면 댓글로 공유해주시면 감사하겠습니다.

 

더 깊이 공부해서 보다 좋은 내용과 유익한 정보를 제공할 수 있도록 하겠습니다!

'Java > Class' 카테고리의 다른 글

[Java][Class] Random  (0) 2023.03.20
클래스(Class), 객체(Object), 인스턴스(Instance)  (0) 2022.12.20
[Java][Class] StringBuilder  (0) 2022.12.09
[Java][Class] StringTokenizer  (0) 2022.12.02
[Java][Class] Bufferedreader  (0) 2022.11.29
Comments