YOO
article thumbnail
Published 2023. 4. 13. 10:15
BufferedReader / BufferedWriter Studying/Java

 

버퍼 입출력

버퍼 (Buffer) : 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역, 

입출력 속도 향상을 위해 버퍼 사용

 

  • Bufferedreader : Scanner와 유사.
  • Bufferedwriter : System.out.println(); 과 유사 

 

BufferedReader : 많은 양의 데이터를 입력받을 경우

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));	// 선언

String s = bf.readLine();			// String
int i = Integer.parseInt(bf.readLine());	// Int => 형변환

BufferedReader(Reader rd) - rd에 연결되는 문자입력 버퍼스트림 생성.

 

1. readLine()시 리턴값을 String으로 고정되기에 String이 아닌 다른 타입으로 입력을 받으려면 형변환을 꼭 해줘야함.

2. 예외처리.(반드시 해줘야함) try~catch를 이용하거나 throws IOException을 사용.

 

- try~catch ver
try {
     String s = bf.readLine();
} catch (IOException e) {
      e.printStackTrace();

throw 이용 시

(1) 클래스를 import해주어야 한다.

import java.io.IOException;

(2) main 클래스 옆에 throws IOException를 작성한다.

public static void main(String[] args) throws IOException {}

 

 

 

 

BufferedWriter : 많은 양의 데이터를 출력 할 경우 

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

String s = "abcdefg";		// 출력할 문장열
bw.write(s+"\n");		// 버퍼에 있는 값 전부 출력
bw.flush();			// 남아있는 데이터를 모두 출력시킴
bw.close();			// 스트림을 닫음

 

BufferedWriter 의 경우 버퍼를 잡아 놓았기 때문에 반드시 flush() / close() 를 반드시 호출해 주어 뒤처리를 해주어야 한다.

그리고 bw.write에는 System.out.println();과 같이 자동개행기능이 없기때문에 개행을 해주어야할 경우에는 \n를 통해 따로 처리해주어야 한다.

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

세션 (Session)  (0) 2023.05.08
Servlet에서 Session, JSP에서 Session  (0) 2023.05.08
[@Annotation] @RequestMapping  (0) 2023.05.08
MyBatis foreach문  (0) 2023.05.01
HashMap.putAll( ) / toArray( ) / keySet( ) / entrySet( )  (0) 2023.04.23

검색 태그