버퍼 입출력
버퍼 (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 |