본문 바로가기
코딩일기/Java

BufferedReader와 BufferedWriter

by 욱파이어니어 2021. 7. 22.
728x90
반응형

알고리즘 공부를 하다가 Scanner 함수보다 효율이 좋다고 하는 BufferedReader와 BufferedWriter에 대해서 알게되어서

글을 올려본다.

 

 

 

 

BufferedReader란?

 

버퍼라는 공간을 이용해서 개행문자나 스페이스가 나타나기 전까지 버퍼에 담아뒀다가 한꺼번에 전송하는것이다.

따라서 전송하는 횟수가 적기때문에 효율적이고 빠르다.

 

Scanner도 BufferedReader와 똑같이 버퍼를 이용해서 값을 입력 받는데

BufferedReader는 단순히 읽어드리기만 하기 때문에 입력속도가 더 빠르다.

하지만 Scanner는 문자열을 파싱하기 때문에 BufferedReader보다 속도가 느리다.

 

 

 

BufferedReader 사용법

 

BufferedReader를 사용하려면 해당 클래스로 객체를 생성해야 한다. 

객체 생성하는 법은 아래와 같다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

객체를 생성했으면 이제 입력을 받는 방법은 아래와 같다.

		try {
			String s = br.readLine();
			int su = Integer.parseInt(br.readLine());
			
			System.out.println("이건 문자열 : "+ s);
			System.out.println("이건 숫자 : "+ su);
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

BufferedReader 같은 경우는 예외 처리를 꼭 해줘야 하고 문자열로 값을 받기 때문에 꼭 파싱을 해줘야 한다.

 

 

BufferedWriter란?

BufferedWriter도 BufferedReader와 마찬가지로 버퍼를 사용해서 출력을 하는건데 출력은 하는것은 

우리가 흔히 알고 있는 System.out.println()과 같다.

하지만 BufferedWriter를 사용할때는 많은 양의 출력이 필요할때 사용한다.

 

 

 

BufferedWriter 사용법

객체를 생성해주고

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

 

 

bw.write()를 통해서 버퍼에 글을 쓴다음 

bw.flush()를 통해서 버퍼에 있는 모든 데이터를 내보내고 

bw.close()를 해서 버퍼를 닫아준다.

		try {
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
			
			bw.write("hello");
			bw.newLine();
			bw.write("I'm wook");
			bw.flush();
			bw.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

 

반응형

'코딩일기 > Java' 카테고리의 다른 글

[Java] ClassLoader 구조 및 동작 원리  (0) 2022.10.14
[Java] Java 동작 원리  (0) 2022.10.13
[Java] ArrayList 란?  (0) 2021.06.18
[Java] LinkedList 란?  (0) 2021.06.18
[Java] 2차원 배열 출력 방법  (0) 2021.06.14