๐Ÿ’ก (Java) BufferedReader ์ •๋ฆฌ

๋ฐ•ํ˜„์•„ยท2024๋…„ 10์›” 29์ผ
0

๊ธฐ์ดˆ

๋ชฉ๋ก ๋ณด๊ธฐ
21/31

๐Ÿ’ก BufferedReader ์ •๋ฆฌ

BufferedReader๋Š” Java์—์„œ ์ž…๋ ฅ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ˜์†”์ด๋‚˜ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฒ„ํผ(buffer)๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ ์†๋„๋ฅผ ๋†’์ธ๋‹ค.

  • BufferedReader๋Š” ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ฝ์–ด๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ž…๋ ฅ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” Scanner๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ํŠนํžˆ ๋ฐ˜๋ณต์ ์ธ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ (์˜ˆ : ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฐ์ดํ„ฐ, ๋Œ€๋Ÿ‰์˜ ์ˆซ์ž ์ž…๋ ฅ)์—์„œ ์œ ๋ฆฌํ•˜๋ฉฐ, System.in๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜์†” ์ž…๋ ฅ์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ค„ ๋‹จ์œ„๋กœ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด, ํŒŒ์ผ์ด๋‚˜ ์ฝ˜์†”์—์„œ ์ž…๋ ฅ์„ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•˜๋‹ค.

์‚ฌ์šฉ๋ฒ•

BufferedReader๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด InputStreamReader์™€ ํ•จ๊ป˜ ์„ค์ •ํ•˜์—ฌ System.in(์ฝ˜์†” ์ž…๋ ฅ) ๋˜๋Š” ํŒŒ์ผ ์ž…๋ ฅ๊ณผ ์—ฐ๊ฒฐํ•œ๋‹ค.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class BufferedReaderStringTokenizerExample {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // ์ฒซ ๋ฒˆ์งธ ์ค„: ์ •์ˆ˜ n ์ž…๋ ฅ ๋ฐ›๊ธฐ
        int n = Integer.parseInt(br.readLine());
        System.out.println("Number of lines: " + n);

        // ๋‹ค์Œ n๊ฐœ์˜ ์ค„์„ ์ฒ˜๋ฆฌ
        for (int i = 0; i < n; i++) {
            // ๊ฐ ์ค„์„ ์ฝ๊ณ  StringTokenizer๋กœ ๋ถ„๋ฆฌ
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());  // ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜
            int b = Integer.parseInt(st.nextToken());  // ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜
            System.out.println("Line " + (i + 1) + ": " + a + ", " + b);
        }

        // BufferedReader ๋‹ซ๊ธฐ
        br.close();
    }
}

์ฝ”๋“œ ์„ค๋ช…

  • BufferedReader ์ƒ์„ฑ : BufferedReader๋กœ ์ฝ˜์†”์—์„œ ์ž…๋ ฅ์„ ์ฝ์–ด๋“ค์ธ๋‹ค.
  • ์ฒซ ์ค„ ์ฝ๊ธฐ : br.readLine()์œผ๋กœ ์ฒซ ์ค„์„ ์ฝ๊ณ , Integer.parseInt()๋กœ ์ •์ˆ˜ n์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ๋ฐ˜๋ณต ์ž…๋ ฅ ์ฒ˜๋ฆฌ : n๊ฐœ์˜ ์ค„์— ๋Œ€ํ•ด ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ๊ฐ ์ค„์„ StringTokenizer๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
  • StringTokenizer st = new StringTokenizer(br.readLine()): ๊ฐ ์ค„์„ ์ฝ๊ณ  ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
  • st.nextToken() : ๊ฐ ํ† ํฐ์„ ์ฐจ๋ก€๋กœ ๊ฐ€์ ธ์™€ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ์ถœ๋ ฅ : ๊ฐ ์ค„์—์„œ ๋ถ„๋ฆฌ๋œ ์ •์ˆ˜ a, b๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€