CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /ํ‚ค๋ณด๋“œ์—์„œ ์ฝ๊ธฐ: "๋…์ž"
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

ํ‚ค๋ณด๋“œ์—์„œ ์ฝ๊ธฐ: "๋…์ž"

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…•! ๋ ˆ๋ฒจ 3์˜ ํ•™์Šต ๋ฐ ์ž‘์—…์—์„œ๋Š” ์ฝ˜์†”์— ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ํ‚ค๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค.
ํ‚ค๋ณด๋“œ์—์„œ ์ฝ๊ธฐ: "๋…์ž" - 1
์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ํ•˜์ง€๋งŒ ์•„์ง ๋Œ€๋‹ตํ•˜์ง€ ์•Š์€ ์งˆ๋ฌธ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋žจ์€ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋“œ๋ญ…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ, ์‹œ์Šคํ…œ, ์ธํ„ฐ๋„ท ๋“ฑ๊ณผ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. "ํ†ต์‹ "์ด๋ž€ ์ฃผ๋กœ "๋ฐ์ดํ„ฐ ๊ตํ™˜"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ผ๋ถ€ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๋‚ด๋ถ€ ํ”„๋กœ๊ทธ๋žจ ๋ฐ์ดํ„ฐ๋„ ์–ด๋”˜๊ฐ€๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ˆ๋Š” ์ผ์ƒ ์ƒํ™œ์— ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” ๋“ฑ๋ก ๋Œ€์‹  Facebook ๋˜๋Š” Twitter ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ๋‘ ํ”„๋กœ๊ทธ๋žจ(์˜ˆ: Twitter์™€ ๋กœ๊ทธ์ธํ•˜๋ ค๋Š” ์›น ์‚ฌ์ดํŠธ)์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์ŠคํŠธ๋ฆผ" ์ด๋ผ๋Š” ๋‹จ์–ด๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ์–ด๋””์—์„œ ์™”์Šต๋‹ˆ๊นŒ? ๊ท€ํ•˜์˜ ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด "์ŠคํŠธ๋ฆผ"์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ณด๋‹ค๋Š” ๊ฐ•๊ณผ ๋” ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์—ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค :) ๋ณธ์งˆ์ ์œผ๋กœ ์ŠคํŠธ๋ฆผ์€ ์›€์ง์ด๋Š” ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ๋ฅด๋Š” ๊ฒƒ์€ ๋ฌผ์ด ์•„๋‹ˆ๋ผ ๋ฐ”์ดํŠธ์™€ ๋ฌธ์ž ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ์ดํ„ฐ ๋น„ํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ ๋‹ค์Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ฌผ/ํ๋ฆ„ ๋น„์œ ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์—์„œ ๋ฌผ์„ ๋– ์„œ ์ˆ˜ํ”„๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ถˆ์„ ๋„๊ฑฐ๋‚˜ ๊ฝƒ์— ๋ฌผ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ„ฐ๋„ท์ด๋“ , ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋“ , ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒƒ์ด๋“  ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ๋ฒ”์šฉ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋””์—์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ (์ž…๋ ฅ ์ŠคํŠธ๋ฆผ) ์–ด๋””๋กœ๋“  ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ). ๊ทธ๋“ค์˜ ์ž„๋ฌด๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ŠคํŠธ๋ฆผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  2. ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Java์—์„œ ์ด๋Ÿฌํ•œ ์ŠคํŠธ๋ฆผ์€ InputStream๋ฐ OutputStreamํด๋ž˜์Šค์— ์˜ํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ŠคํŠธ๋ฆผ์€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ถ„๋ฅ˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ์™ธ์—๋„ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ๋ฐ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ ์— ๋Œ€ํ•ด์„œ๋„ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์„œ ์˜๋ฏธ๋Š” ์ถฉ๋ถ„ํžˆ ๋ช…ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์€ ์ •๋ณด๋ฅผ ๋ฐ”์ดํŠธ ์ง‘ํ•ฉ์œผ๋กœ ์ „์†กํ•˜๊ณ  ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์€ ์ •๋ณด๋ฅผ ๋ฌธ์ž ์ง‘ํ•ฉ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ ˆ์Šจ์—์„œ๋Š” ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋งˆ์ง€๋ง‰์— ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :) ์ด์ œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
์ˆ˜์—…์„ ๋“ค์œผ๋ฉด์„œ ์ด ๋Œ€์‚ฌ๊ฐ€ ์ƒ๋‹นํžˆ ์œ„ํ˜‘์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋‚˜์š”? :) ์ž‘๋™ ๋ฐฉ์‹์„ ์‚ดํŽด๋ณธ ํ›„์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ์„ ๋ฐ”๋กœ ์žก์ž. ๋์—์„œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์—์„œ ์ด์•ผ๊ธฐํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ ๊ฐœ์ฒด System.in์ž…๋‹ˆ๋‹ค . InputStream์‹œ์Šคํ…œ ์ž…๋ ฅ ์žฅ์น˜(ํ‚ค๋ณด๋“œ)์— ์—ฐ๊ฒฐ๋œ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‹น์‹ ์€ ์ด ํ๋ฆ„์— ๋Œ€ํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ "coworker"๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค โ€” System.out! System.out์‹œ์Šคํ…œ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. System.out.println()์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ข‹์•„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ฝ˜์†”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค :) System.out์ฝ˜์†”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค.System.inํ‚ค๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค :) ๊ฒŒ๋‹ค๊ฐ€ ์ด ๊ฑฐ๋Œ€ํ•œ ๊ตฌ์กฐ ์—†์ด๋„ ํ‚ค๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. System.in.read();

public class Main {

   public static void main(String[] args) throws IOException {

       while (true) {
           int x = System.in.read();
           System.out.println(x);
       }
   }
}
ํด๋ž˜์Šค InputStream( ๊ฐ์ฒด System.in์ž„์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค InputStream)์—๋Š” read()๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž ๊ฐ€ ์•„๋‹Œ ๋ฐ”์ดํŠธ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค . ์˜๋ฌธ ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ง€๋ฃจํ•˜๋‹ˆ ์žํŒ ์—์„œ ํ•œ์ž "้ญš"๋ฅผ ์ฝ์–ด๋ณด์ž . ๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฌธ์ž๋Š” '๋ฌผ๊ณ ๊ธฐ'๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†” ์ถœ๋ ฅ: ้ญš 233 173 154 10 ์ด ๊ธฐํ˜ธ์™€ ๋‹ค๋ฅธ ๋งŽ์€ ์ค‘๊ตญ์–ด๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์—์„œ 3๋ฐ”์ดํŠธ๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค(๋‹จ์ง€ 1๋ฐ”์ดํŠธ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๋ผํ‹ด ๋ฌธ์ž์™€ ๋‹ฌ๋ฆฌ). ์ด ๊ฒฝ์šฐ ์ŠคํŠธ๋ฆผ์—์„œ 4๋ฐ”์ดํŠธ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ 3๋ฐ”์ดํŠธ๋Š” "้ญš" ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๋‹ค๋ฅธ ๋ฐ”์ดํŠธ๋Š” ์ƒˆ ์ค„(Enter)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ System.in๊พธ๋ฐˆ์—†๋Š” ํ˜•ํƒœ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ธ๊ฐ„์€(๋“œ๋ฌธ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ !) ๋ฐ”์ดํŠธ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ InputStreamReader์ˆ˜์—…์ด ๊ตฌ์ถœ๋ฉ๋‹ˆ๋‹ค! ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋™๋ฌผ์ธ์ง€ ๋ด…์‹œ๋‹ค.

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
InputStreamReaderSystem.in ๊ฐœ์ฒด ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค . ํด๋ž˜์Šค ์ด๋ฆ„์ด ๊ทธ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ... InputStreamReader

new InputStreamReader(System.in)
... "์‹œ์Šคํ…œ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์—์„œ (ํ‚ค๋ณด๋“œ์—์„œ) ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์œ ์ผํ•œ ๊ธฐ๋Šฅ์€ ์•„๋‹™๋‹ˆ๋‹ค! InputStreamReader์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ์ดํ„ฐ๋งŒ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค . ๋˜ํ•œ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค . ์ฆ‰, ๋” ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฅผ "1๊ณผ 0"์—์„œ "์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด"๋กœ ๋ณ€ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. InputStreamreader๋‹น์‹ ์„ ์œ„ํ•ด ๋ชจ๋“  ๊ฒƒ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  InputStreamReader์ฝ˜์†”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒƒ์œผ๋กœ ์ œํ•œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์—์„œ:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

   public static void main(String[] args) throws IOException {
       InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("C:\\Users\\username\\Desktop\\testFile.txt"));
   }
}
FileInputStream์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” (์˜ ํ•œ ๊ฐ€์ง€ ๋ง› ) ์„ ๋งŒ๋“ค๊ณ  InputStreamํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ŠคํŠธ๋ฆผ ์ž์ฒด๋ฅผ ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค InputStreamReader. ์ด์ œ ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ฌผ๋ก  ํŒŒ์ผ์ด ๊ฒฝ๋กœ์— ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ). ๋˜ํ•œ InputStreamReaderํด๋ž˜์Šค์˜ read()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค(๋ฐ์ดํ„ฐ ์†Œ์Šค๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ์ฝ˜์†”, ํŒŒ์ผ ๋˜๋Š” ๋‹ค๋ฅธ ๊ณณ). System.in.read()์™€ ?\ ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ InputStreamReader.read()?\ ๋‹ค์‹œ "้ญš" ๋ฌธ์ž๋ฅผ InputStreamReader. System.in.read()้ญš 233 173 154 10 ๊ทธ๋ฆฌ๊ณ  ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡ ์ž…๋‹ˆ๊นŒ ?InputStreamReader

public class Main {

   public static void main(String[] args) throws IOException {

       InputStreamReader reader = new InputStreamReader(System.in);
       while (true) {
           int x = reader.read();
           System.out.println(x);
       }
   }
}
์ฝ˜์†” ์ถœ๋ ฅ: ้ญš 39770 10 ์ฐจ์ด๊ฐ€ ์ฆ‰์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋ฐ”์ดํŠธ(์ƒˆ ์ค„์„ ๋‚˜ํƒ€๋ƒ„)๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ (์ˆซ์ž 10) ๋‚จ์•„ ์žˆ์ง€๋งŒ ๋ฌธ์ž "้ญš"๋Š” ๋‹จ์ผ ์ฝ”๋“œ "39770"์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์ž๋ฅผ ์ฝ๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค! 39770์ด "้ญš"๋ผ๋Š” ๊ธ€์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์‰ฝ๊ฒŒ ๋‚ฉ๋“ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :)
import java.io.IOException;

public class Main {

   public static void main(String[] args) throws IOException {

       char x = 39770;
       System.out.println(x);
   }
}
์ฝ˜์†” ์ถœ๋ ฅ: ้ญš ํ•˜์ง€๋งŒ InputStreamReader๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ›Œ๋ฅญํ•˜๋‹ค๋ฉด ์™œ ์šฐ๋ฆฌ๋Š” BufferedReader? InputStreamReader๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ๋ฐ”์ดํŠธ๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋” ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์™œ ๋‹ค๋ฅธ ๋…์ž์ž…๋‹ˆ๊นŒ? :/ ๋Œ€๋‹ต์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์„ฑ๋Šฅ ๊ณผ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด . ์„ฑ๋Šฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ BufferedReader๋ฒ„ํผ๋ผ๊ณ  ํ•˜๋Š” ํŠน์ˆ˜ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ์€ ๋ฌธ์ž๋ฅผ "์ €์žฅ"ํ•ฉ๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ฌธ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•  ๋•Œ ๋ฐ์ดํ„ฐ ์†Œ์Šค(ํ‚ค๋ณด๋“œ, ํŒŒ์ผ ๋“ฑ)์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฒ„ํผ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋Œ€๊ธฐ์—…์˜ ํƒ๋ฐฐ์›์„ ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค. ๋ฐฐ๋‹ฌ์›์€ ์‚ฌ๋ฌด์‹ค์— ์•‰์•„ ๋ˆ„๊ตฐ๊ฐ€ ๋ฐฐ๋‹ฌํ•  ์†Œํฌ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์ƒˆ ํŒจํ‚ค์ง€๋ฅผ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๊ทธ๋Š” ์ฆ‰์‹œ ๊ธธ์„ ๋– ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ฎ์—๋Š” ๋งŽ์€ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์‚ฌ๋ฌด์‹ค๊ณผ ๋ฐฐ๋‹ฌ ์ฃผ์†Œ ์‚ฌ์ด๋ฅผ ๋งŽ์ด ์ด๋™ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ํƒ๋ฐฐ๋Š” ์‚ฌ๋ฌด์‹ค์— ์ƒ์ž๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์ƒ์ž์— ํŒจํ‚ค์ง€๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํƒ๋ฐฐ๋Š” ์นจ์ฐฉํ•˜๊ฒŒ ์ƒ์ž๋ฅผ ๋“ค๊ณ  ์ฃผ์†Œ์—์„œ ์ฃผ์†Œ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋งค๋ฒˆ ์‚ฌ๋ฌด์‹ค๋กœ ๋Œ์•„์˜ฌ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์‹œ๊ฐ„์ด ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ ์ƒ์ž๋Š” ๋ฒ„ํผ์ผ ๋ฟ์ด๊ณ  ์‚ฌ๋ฌด์‹ค์€ ๋ฐ์ดํ„ฐ ์›๋ณธ์ž…๋‹ˆ๋‹ค. ํƒ๋ฐฐ๊ฐ€ ๋งค๋ฒˆ ์‚ฌ๋ฌด์‹ค๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐฐ๋‹ฌํ•  ๋•Œ ๋‹จ์ผ ์ƒ์ž์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ํœ˜๋ฐœ์œ ๋„ ์ ˆ์•ฝํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฒ„ํผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๋ฆฌ์†Œ์Šค๋ฅผ ํ›จ์”ฌ ์ ๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ,BufferedReader+ ํ˜ผ์ž InputStreamReader๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹คInputStreamReader . ์šฐ๋ฆฌ๋Š” ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽธ์˜์„ฑ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ Bufferedreaderํ•œ ๋ฒˆ์— ํ•œ ๋ฌธ์ž๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ(๋น„๋ก ํ•ด๋‹น read()๋ฉ”์„œ๋“œ๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ) ํ•œ ๋ฒˆ์— ์ „์ฒด ์ค„์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ readLine()๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

public class Main {

   public static void main(String[] args) throws IOException {

       BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
       String s = reader.readLine();
       System.out.println("We read this line from the keyboard:");
       System.out.println(s);
   }
}
์ฝ˜์†” ์ถœ๋ ฅ: CodeGym์€ Java ํ•™์Šต์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์›น์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ํ‚ค๋ณด๋“œ์—์„œ ๋‹ค์Œ ์ค„์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. CodeGym์€ Java ํ•™์Šต์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์›น์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž๋ณ„๋กœ ํ•œ ์ค„ ๋˜๋Š” ๋‘ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ฝ๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์ „์Ÿ๊ณผ ํ‰ํ™”"์—์„œ ํ•œ ๋ฒˆ์— ํ•œ ๊ธ€์ž์”ฉ ์ฝ๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

๋” ์ฝ์–ด๋ณด๊ธฐ:

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION