사소한 개발지식/JAVA

JAVA - BufferedReader / BufferedWriter (입출력 함수)

2019. 9. 26. 17:10
728x90
반응형

■ BufferedReader / BufferedWriter

 

 - Buffer에 입력데이터를 모아서 한번에 전달하기 때문에 속도,효율성 측면에서 성능이 좋다.

 - 백준 알고리즘 2741번 문제를 Scanner와 BufferedReader로 코딩시 Scanner(696ms) / BufferedReader(192ms)

 

 

■ BufferedReader

import java.io.*;

public class Main {
	// BufferedReader 사용 시 예외처리 필수!
	public static void main(String[] args) throws Exception {
    	// 콘솔 입력 시 BufferedReader 객체 생성
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // readLine() 매서드 리턴값은 String이어서 숫자 입력시 형변환 필수!
        int N = Integer.parseInt(br.readLine());
        
        String line = "";
        // 더 이상 입력값이 없을 때까지 1줄씩 읽는다.
       	for(int i=0; (line=br.readLine()) !== null; i++;) {
        	System.out.println(line);
         }
	}
}

 - readLine() 시 한 줄 단위로 데이터를 읽기 때문에 공백 단위로 데이터를 읽기 위해서는 StringTokenizer 객체나

   String의 split 매서드를 사용하여야 한다.

 

 

■ BufferedReader 매서드

 

 - (void) close() : 입력스트림을 닫는다.(Closes the stream and releases any system resources associated with it.)

 - (void) mark() : 스트림의 현재 위치를 마킹합니다.(Marks the present position in the system.)

 - (boolean) markSupported() : 스트림이 mark 기능을 지원하는지 true/false로 알려줍니다.

                                         (Tells whether this stream supports the mark() operation, which it does.)

 - (int) read() : 한 글자만 읽어 정수형으로 반환.(Reads a single character.)

 - (int) read(char[] cbuf, int offset, int length) : cbuf의 offset위치부터 length만큼 문자를 읽어옵니다.

                                                            (Reads characters into a portion of an array.)

 - (String) readLine() : 한 줄을 읽어 String으로 반환.(Reads a line of text.)

 - (boolean) ready() : 입력스트림이 사용할 준비가 되어있는지 확인.

                             (Tells whether this stream is ready to be read.)

 - (void) reset() : 마킹이 있으면 그 위치부터 다시 시작, 그렇지 않으면 처음부터 다시 시작합니다.

                      (Resets the stream to the most recent mark.)

 - (long) skip(long n) : n개의 문자를 건너뜁니다. (Skips characters.)

 

 

■ BufferedWriter

import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
    	// 콘솔에 출력
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        bw.write("hello\n"); // 버퍼에 쓰기
        bw.newLine(); // 개행(줄바꿈)
        bw.write("I am writing\n");
        bw.flush(); // 버퍼 비우기(버퍼에 저장된 데이터는 출력)
        bw.close();
    }
}

 

 

■ BufferedWriter 매서드

 

 - (void) close() : 스트림을 닫습니다. 닫기 전에 flushing 필수.(Closes the stream, flushing it first.)

 - (void) flush() : 스트림을 비웁니다.(Flushes the stream.)

 - (void) newLine() : 개행문자 쓰기.(Writes a line separator.)

 - (void) write(char[] cbuf, int offset, int length) : 버퍼 offset위치부터 length크기만큼 write 씁니다.

 - (void) write(int c) : 한 글자 쓰기.(Writes a single character.)

 - (void) write(String s, int offset, int length) : 문자열에서 offset부터 일정 길이만큼 쓰기.

                                                           (Writes a portion of a String.)

 

 

참고 : https://jhnyang.tistory.com/92

728x90
반응형
저작자표시 (새창열림)
'사소한 개발지식/JAVA' 카테고리의 다른 글
  • JAVA - StringTokenizer (문자열 분리)
KimBY
KimBY
웹개발과 관련된 개발지식 모음
KimBY
B.Y Kim의 개발노트
KimBY
전체
오늘
어제
  • 분류 전체보기 (99)
    • 사소한 개발지식 (49)
      • PHP (2)
      • JavaScript (15)
      • NodeJS (0)
      • JAVA (2)
      • 잡?지식 (4)
      • 로드맵(FE) (22)
      • React (4)
    • 개발노트 (6)
      • 포트폴리오사이트 (6)
    • 프로그래머스 (33)
      • Level1(JS) (0)
      • Level2(JS) (33)
    • 백준알고리즘 (11)
      • 단계별로 풀어보기3(for문) (11)
    • 잡담 (0)

인기 글

최근 글

최근 댓글

태그

  • frontend
  • 단계별로풀어보기
  • 프로그래머스
  • javascript
  • 백준알고리즘
  • react
  • FE로드맵
  • CSS
  • Level2
  • 로드맵
hELLO · Designed By 정상우.
KimBY
JAVA - BufferedReader / BufferedWriter (입출력 함수)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.