S14L08 – Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ํŒŒ์ผ ์ฝ๊ธฐ

html

Scanner๋ฅผ ์‚ฌ์šฉํ•œ Java์˜ ํ…์ŠคํŠธ ํŒŒ์ผ ์ฝ๊ธฐ: ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

  1. ์†Œ๊ฐœ - ํŽ˜์ด์ง€ 1
  2. Scanner ํด๋ž˜์Šค ์ดํ•ด - ํŽ˜์ด์ง€ 3
  3. Java ํ”„๋กœ์ ํŠธ ์„ค์ • - ํŽ˜์ด์ง€ 7
  4. Scanner๋ฅผ ์‚ฌ์šฉํ•œ ํŒŒ์ผ ์ฝ๊ธฐ ๊ตฌํ˜„ - ํŽ˜์ด์ง€ 11
  5. Try-Catch๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - ํŽ˜์ด์ง€ 15
  6. Scanner์™€ BufferedReader ๋น„๊ต - ํŽ˜์ด์ง€ 19
  7. ์ถœ๋ ฅ ๋ฐ ์‹คํ–‰ - ํŽ˜์ด์ง€ 23
  8. ๊ฒฐ๋ก  - ํŽ˜์ด์ง€ 27

์†Œ๊ฐœ

ํŒŒ์ผ ์ฝ๊ธฐ๋Š” ๋‹ค์–‘ํ•œ ์†Œ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋งŽ์€ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ธฐ๋ณธ์ ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” Java์—์„œ Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๋ฉฐ, ์ดˆ๋ณด์ž์™€ ๊ธฐ๋ณธ ์ง€์‹์„ ๊ฐ€์ง„ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ํ•ฉํ•œ ๋ช…ํ™•ํ•œ ๋‹จ๊ณ„๋ณ„ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Java์—์„œ ํŒŒ์ผ ์ฝ๊ธฐ์˜ ์ค‘์š”์„ฑ

  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ: ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
  • ๊ตฌ์„ฑ ๊ด€๋ฆฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค.
  • ๋กœ๊น…: ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

Scanner ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 

ํŠน์ง• Scanner BufferedReader
์‚ฌ์šฉ ์šฉ์ด์„ฑ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์  ๋” ๋งŽ์€ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ํ•„์š”
์„ฑ๋Šฅ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋Š๋ฆผ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋น ๋ฆ„
๊ธฐ๋Šฅ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ฝ๊ธฐ ๋ผ์ธ ๊ธฐ๋ฐ˜ ์ฝ๊ธฐ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ try-with-resources๋กœ ๋‹จ์ˆœํ™” ๋ช…์‹œ์  ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”

Scanner๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ

  • ๊ตฌํ˜„ ์šฉ์ด์„ฑ์ด ์šฐ์„ ์ธ ๊ฒฝ์šฐ.
  • ์†Œ๊ทœ๋ชจ์—์„œ ์ค‘๊ฐ„ ํฌ๊ธฐ์˜ ํ…์ŠคํŠธ ํŒŒ์ผ์ธ ๊ฒฝ์šฐ.
  • ํ† ํฐ ๊ธฐ๋ฐ˜ ํŒŒ์‹ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ.

Scanner๋ฅผ ํ”ผํ•ด์•ผ ํ•  ๋•Œ

  • ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ๋งค์šฐ ํฐ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ.
  • ํ† ํฐํ™” ์—†์ด ๋ผ์ธ ๋‹จ์œ„๋กœ ์ฝ๊ธฐ๋งŒ ํ•˜๋ฉด ์ถฉ๋ถ„ํ•  ๋•Œ.

Scanner ํด๋ž˜์Šค ์ดํ•ด

Java์˜ Scanner ํด๋ž˜์Šค๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์›์‹œ ํƒ€์ž…๊ณผ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ชฉ์  ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ํŒŒ์ผ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ์ž…๋ ฅ์„ ์ฝ๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ๋…

  • ํ† ํฐํ™”: ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…๋ ฅ์„ ํ† ํฐ์œผ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ: Scanner๋Š” ํŒŒ์ผ, ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๋ฐ ๋ฌธ์ž์—ด์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ •๊ทœ ํ‘œํ˜„์‹: ๋ณต์žกํ•œ ํŒŒ์‹ฑ ํŒจํ„ด์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

Scanner๋ฅผ ์„ ํƒํ•˜๋Š” ์ด์œ ?

  • ๋‹จ์ˆœ์„ฑ: ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ํŒŒ์‹ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œํ™”๋ฉ๋‹ˆ๋‹ค.
  • ์œ ์—ฐ์„ฑ: ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Java ํ”„๋กœ์ ํŠธ ์„ค์ •

์ฝ”๋“œ ๊ตฌํ˜„์— ๋›ฐ์–ด๋“ค๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ •์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

ํ•„์š”ํ•œ ํŒŒ์ผ

  • pom.xml: ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ์„ ์œ„ํ•œ Maven ๊ตฌ์„ฑ ํŒŒ์ผ.
  • Main.java: ํŒŒ์ผ ์ฝ๊ธฐ ๋กœ์ง์„ ํฌํ•จํ•˜๋Š” ์ฃผ์š” Java ํด๋ž˜์Šค.
  • test.txt: ์ฝ์„ ์ƒ˜ํ”Œ ํ…์ŠคํŠธ ํŒŒ์ผ.

Maven ์„ค์ •

Maven์ด ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜๊ณ  ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์œ„์— ํ‘œ์‹œ๋œ ๋Œ€๋กœ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ํŒŒ์ผ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค.


Scanner๋ฅผ ์‚ฌ์šฉํ•œ ํŒŒ์ผ ์ฝ๊ธฐ ๊ตฌํ˜„

Java์—์„œ Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฝ๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„ 1: ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ

ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋ฐ ์˜ˆ์™ธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ•„์š”ํ•œ Java ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

๋‹จ๊ณ„ 2: File ๊ฐ์ฒด๋กœ Scanner ์ดˆ๊ธฐํ™”

์›ํ•˜๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” File ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•˜์—ฌ Scanner ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๊ณ„ 3: ํŒŒ์ผ์„ ๋ผ์ธ ๋‹จ์œ„๋กœ ์ฝ๊ธฐ

ํŒŒ์ผ์˜ ๋์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๊ฐ ๋ผ์ธ์„ ์ฝ๊ธฐ ์œ„ํ•ด ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ์ฝ”๋“œ ์˜ˆ์ œ

์ฝ”๋“œ ์ฃผ์„:


  • Scanner๋ฅผ ์ง€์ •๋œ ํŒŒ์ผ์—์„œ ์ฝ๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋” ์ด์ƒ ๋ผ์ธ์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ์ฝ์Šต๋‹ˆ๋‹ค.

  • ํŒŒ์ผ์—์„œ ๋‹ค์Œ ๋ผ์ธ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • ๋ผ์ธ์„ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Try-Catch๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ I/O๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Try-With-Resources ์‚ฌ์šฉ

Java์˜ try-with-resources ๋ฌธ์€ ๊ฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฌธ์žฅ ๋์—์„œ ์ž๋™์œผ๋กœ ๋‹ซํžˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ :

  • ์ž๋™ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ: Scanner๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ซํž™๋‹ˆ๋‹ค.
  • ๋” ๊น”๋”ํ•œ ์ฝ”๋“œ: ๋ช…์‹œ์ ์ธ sc.close()๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

Scanner์™€ BufferedReader ๋น„๊ต

Scanner์™€ BufferedReader๋Š” ๋ชจ๋‘ Java์—์„œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฝ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ๋ช…ํ™•ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Scanner

  • ์žฅ์ :
    • ๊ฐ„๋‹จํ•œ ๊ตฌ๋ฌธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
    • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํŒŒ์‹ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์†Œ๊ทœ๋ชจ์—์„œ ์ค‘๊ฐ„ ํฌ๊ธฐ์˜ ํŒŒ์ผ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ :
    • BufferedReader์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋Š๋ฆฝ๋‹ˆ๋‹ค.
    • ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

BufferedReader

  • ์žฅ์ :
    • ํŠนํžˆ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋” ๋น ๋ฅธ ์ฝ๊ธฐ ์†๋„.
    • ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ.
    • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ฝ๊ธฐ์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.
  • ๋‹จ์ :
    • ๋” ์žฅํ™ฉํ•œ ์ฝ”๋“œ.
    • ํŒŒ์‹ฑ ์—†์ด ๋ผ์ธ ์ฝ๊ธฐ์— ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.

๋น„๊ต ํ‘œ

ํŠน์ง• Scanner BufferedReader
์‚ฌ์šฉ ์šฉ์ด์„ฑ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์  ๋” ๋งŽ์€ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ํ•„์š”
์„ฑ๋Šฅ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋Š๋ฆผ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋น ๋ฆ„
๊ธฐ๋Šฅ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ฝ๊ธฐ ๋ผ์ธ ๊ธฐ๋ฐ˜ ์ฝ๊ธฐ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ try-with-resources๋กœ ๋‹จ์ˆœํ™” ๋ช…์‹œ์  ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”

์ถœ๋ ฅ ๋ฐ ์‹คํ–‰

์ œ๊ณต๋œ Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด test.txt์˜ ๋‚ด์šฉ์„ ์ฝ์–ด ์ฝ˜์†”์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ test.txt ๋‚ด์šฉ

์˜ˆ์ƒ ์ฝ˜์†” ์ถœ๋ ฅ

์„ค๋ช…

test.txt ํŒŒ์ผ์˜ ๊ฐ ๋ผ์ธ์€ Scanner์— ์˜ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝํ˜€์ง€๊ณ  ์ฝ˜์†”์— ์ถœ๋ ฅ๋˜๋ฉฐ, ๊ตฌํ˜„๋œ ์ฝ”๋“œ์˜ ํšจ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.


๊ฒฐ๋ก 

Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Java์—์„œ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฝ๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ๊ณผ์ •์œผ๋กœ, ํŠนํžˆ ์ดˆ๋ณด์ž์™€ ๊ธฐ๋ณธ ์ง€์‹์„ ๊ฐ€์ง„ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ํ”„๋กœ์ ํŠธ ์„ค์ •๋ถ€ํ„ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํฌํ•จํ•œ ๊ฒฌ๊ณ ํ•œ ํŒŒ์ผ ์ฝ๊ธฐ ๊ตฌํ˜„์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ข…ํ•ฉ์ ์ธ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์š”์ :

  • Scanner๋Š” ํŒŒ์ผ์„ ์ฝ๊ณ  ํŒŒ์‹ฑํ•˜๋Š” ๋ฐ ์žˆ์–ด ๋‹จ์ˆœ์„ฑ๊ณผ ์‚ฌ์šฉ ์šฉ์ด์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ ์ ˆํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ค๋ฅ˜๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • Scanner์™€ BufferedReader์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋ฉด ํ•„์š”์— ๋งž๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Java์˜ ํŒŒ์ผ I/O ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : ์ด ๊ธฐ์‚ฌ๋Š” AI์— ์˜ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.






Share your love