Java๐Ÿ”ฅ

(Java) EOF ๋ž€?

hae02y 2023. 10. 17. 16:32
๋ฐ˜์‘ํ˜•

EOF๋ž€?

EOF ๋Š” End Of File ์˜ ์•ฝ์ž๋กœ, ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ๋ถ€ํ„ฐ ๋”์ด์ƒ ์ฝ์„ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒฝ์šฐ ์ž…๋ ฅ๊ฐ’์„ ์–ผ๋งˆ๋‚˜ ๋ฐ›๋Š”์ง€ ๋ช…์‹œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋“ค์ด ์žˆ๊ณ  ์ด๋Ÿฐ๊ฒฝ์šฐ EOF๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Scanner ์‚ฌ์šฉ

๋จผ์ € Scanner ๋ฅผ ํ†ตํ•ด EOF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ •๋ง ์‰ฝ๋‹ค. Scanner์˜ hasNext() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์ž…๋ ฅ๋œ ํ† ํฐ์ด ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Scanner scan = new Scanner(System.in);

while(scan.hasNext()) {
  System.out.println(scan.nextLine());
}

BufferdReader ์‚ฌ์šฉ

BufferedReader๋Š” ํ† ํฐ์„ ํ™•์ธํ•˜๋Š” ๋‚ด์žฅํ•จ์ˆ˜๊ฐ€ ๋”ฐ๋กœ ์—†๋‹ค. ๊ทธ๋ž˜์„œ null ๊ฐ’์„ ๋น„๊ตํ•จ์œผ๋กœ์จ, EOF๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";

while((input = br.readLine()) != null) {
    ...
}

br.readline() ์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ์ฝ์–ด๋‚˜๊ฐ€๋ฉด์„œ, ์ฝ์€ ๊ฐ’์ด null์ด ๋œ๋‹ค๋ฉด, ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•