백준 1008,10871 BufferedReader,BufferedWriter, StringTokenizer활용

Tae hyun·2023년 3월 29일
0

코딩테스트

목록 보기
1/5

BufferedReader와 BufferedWriter는 버퍼를 이용해서 입출력 효율을 높여준다.
Scanner보다 성능이 더 좋다.

사용예시

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[]args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");//공백을 기준으로 구분함. " "는 생략해도 기본으로 공백 기준으로 됨
        int a = Integer.parseInt(st.nextToken());//예제대로 입력시 1
        int b = Integer.parseInt(st.nextToken());//예제대로 입력시 3
        double sum = (double)a/(double)b;
        System.out.println(sum);
    }
}
  1. readLine()메서드: 데이터를 라인 단위로 읽음
  2. 리턴 값은 모조건 String: 다른 타입으로 사용하려면 형변환 필요
    3.readLine()할 때마다 throws IOException혹은 try&catch를 이용한 예외처리 필요

StringTokenizer
긴 문자열을 지정된 구분자를 기준으로 문자열을 자를 때 사용함

BufferedWriter
일반적인 출력은 System.out.println("");방식인데
BufferedWriter를 사용하면 일반적 방식보다 성능이 개선된다.
사용예시

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[]args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//System.out.println 대체하려고 씀
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int x = Integer.parseInt(st.nextToken());
        int arr[] = new int[n];
        StringTokenizer st2 = new StringTokenizer(br.readLine());//StringTokenizer는 재사용이 불가해서 위에서 선언했어도 또 쓰려면 또 선언해야함
        for(int i=0;i<arr.length;i++){
            arr[i] = Integer.parseInt(st2.nextToken());
            if(arr[i]<x){
               bw.write(arr[i]+" ");
            }
        }
        bw.flush();//남아있는 데이터를 모두 출력시키기 위해 호출해 닫아줌
        br.close();
    }
}

flush()로 남아있는 데이터를 모두 출력함
개행을 해야 할 때는 br.wirte(arr[i]+"\n");

출처 BufferedReader / BufferedWriter / StringTokenizer: https://dblee.tistory.com/167

profile
안녕하세요 개발하는 알파카입니다. https://github.com/oh-taehyun

0개의 댓글