Notice
Recent Posts
Recent Comments
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

Scanner vs BufferedReader/BufferedWriter 본문

Java

Scanner vs BufferedReader/BufferedWriter

빌드이너프 2023. 1. 10. 16:16
  • 먼저 살펴보기

 

input data: 1 2 3

 

Scanner

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
  • Scanner 객체 생성 후
  • nextInt 함수를 사용하여 변수를 저장할 수 있음

 

BufferedReader

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

StringTokenizer st = new StringTokenizer(br.readLine());

int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
  • BufferedReader 객체 생성 후
  • BufferedReader 객체 안에 InputStreamReader 객체 생성 해야 함
  • readLine 함수로 받으면 한 줄 씩 String 형태로 받게 됨
  • -> StringTokenizer를 생성하여 받아줘야 함
  • StringTokenizer로 받은 값을 int 형태로 파싱해줘야 함

 

BufferedReader/BufferedWriter

  • BufferedReader/BufferedWriter는 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할 해줌
  • 버퍼를 이용하면 효율이 비교할 수 없을 정도로 좋아짐
  • BufferedReader의 readLine()을 사용하면 데이터를 라인단위로 읽을 수 있고,
  • BufferedWriter는 readLine()이라는 줄바꿈 해주는 메서드를 가지고 있다
import java.io.*;
public class BufferedReaderEX1 {
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("BufferedReader.java");
            BufferedReader br = new BufferedReader(fr);

            String line = "";
            for (int i = 0; (line = br.readLine()) != null; i++) {
                // "/"를 포함한 라인을 출력
                if (line.indexOf(";") !=- 1)
                    System.out.println(i + ":" + line);

            }
            br.close();
        } catch (IOException e) {}
    }
}
  • BufferedReaderdml readline()을 이용해서 파일을 라인단위로 읽은 다음 indexOf()를 이용해 ;를 포함하고 있는지 확인하여 출력
  • 파일에서 특정 문자 또는 문자열을 포함한 라인을 쉽게 찾아낼 수 있음

'Java' 카테고리의 다른 글

자바 프로그램 구조  (0) 2023.01.25
.close()  (0) 2023.01.13
기본형과 참조형  (0) 2023.01.09
변수 variable  (0) 2023.01.06
자바 클래스 작성  (1) 2023.01.06