html
Scanner๋ฅผ ์ฌ์ฉํ Java์ ํ ์คํธ ํ์ผ ์ฝ๊ธฐ: ์ข ํฉ ๊ฐ์ด๋
๋ชฉ์ฐจ
- ์๊ฐ - ํ์ด์ง 1
- Scanner ํด๋์ค ์ดํด - ํ์ด์ง 3
- Java ํ๋ก์ ํธ ์ค์ - ํ์ด์ง 7
- Scanner๋ฅผ ์ฌ์ฉํ ํ์ผ ์ฝ๊ธฐ ๊ตฌํ - ํ์ด์ง 11
- Try-Catch๋ฅผ ์ฌ์ฉํ ์์ธ ์ฒ๋ฆฌ - ํ์ด์ง 15
- Scanner์ BufferedReader ๋น๊ต - ํ์ด์ง 19
- ์ถ๋ ฅ ๋ฐ ์คํ - ํ์ด์ง 23
- ๊ฒฐ๋ก - ํ์ด์ง 27
์๊ฐ
ํ์ผ ์ฝ๊ธฐ๋ ๋ค์ํ ์์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ง์ Java ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ธฐ๋ณธ์ ์ธ ์์ ์ ๋๋ค. ์ด ๊ฐ์ด๋๋ Java์์ Scanner ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ํ์ผ์ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๋ฉฐ, ์ด๋ณด์์ ๊ธฐ๋ณธ ์ง์์ ๊ฐ์ง ๊ฐ๋ฐ์์๊ฒ ์ ํฉํ ๋ช ํํ ๋จ๊ณ๋ณ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค.
Java์์ ํ์ผ ์ฝ๊ธฐ์ ์ค์์ฑ
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ ๋๋ค.
- ๊ตฌ์ฑ ๊ด๋ฆฌ: ์ ํ๋ฆฌ์ผ์ด์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ๊ธฐ ์ํด ๊ตฌ์ฑ ํ์ผ์ ์ฝ์ต๋๋ค.
- ๋ก๊น : ๋ชจ๋ํฐ๋ง ๋ฐ ๋๋ฒ๊น ์ ์ํ ๋ก๊ทธ๋ฅผ ์ ์งํฉ๋๋ค.
Scanner ์ฌ์ฉ์ ์ฅ๋จ์
ํน์ง | Scanner | BufferedReader |
---|---|---|
์ฌ์ฉ ์ฉ์ด์ฑ | ๊ฐ๋จํ๊ณ ์ง๊ด์ | ๋ ๋ง์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋ ํ์ |
์ฑ๋ฅ | ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋๋ฆผ | ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋น ๋ฆ |
๊ธฐ๋ฅ | ํ ํฐ ๊ธฐ๋ฐ ์ฝ๊ธฐ | ๋ผ์ธ ๊ธฐ๋ฐ ์ฝ๊ธฐ |
์์ธ ์ฒ๋ฆฌ | try-with-resources๋ก ๋จ์ํ | ๋ช ์์ ์ฒ๋ฆฌ๊ฐ ํ์ |
Scanner๋ฅผ ์ฌ์ฉํด์ผ ํ ๋
- ๊ตฌํ ์ฉ์ด์ฑ์ด ์ฐ์ ์ธ ๊ฒฝ์ฐ.
- ์๊ท๋ชจ์์ ์ค๊ฐ ํฌ๊ธฐ์ ํ ์คํธ ํ์ผ์ธ ๊ฒฝ์ฐ.
- ํ ํฐ ๊ธฐ๋ฐ ํ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ.
Scanner๋ฅผ ํผํด์ผ ํ ๋
- ์ฑ๋ฅ์ด ์ค์ํ ๋งค์ฐ ํฐ ํ์ผ์ ์ฒ๋ฆฌํ ๋.
- ํ ํฐํ ์์ด ๋ผ์ธ ๋จ์๋ก ์ฝ๊ธฐ๋ง ํ๋ฉด ์ถฉ๋ถํ ๋.
Scanner ํด๋์ค ์ดํด
Java์ Scanner ํด๋์ค๋ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ์์ ํ์ ๊ณผ ๋ฌธ์์ด์ ํ์ฑํ ์ ์๋ ๋ค๋ชฉ์ ์ ํธ๋ฆฌํฐ์ ๋๋ค. ํนํ ํ์ผ์ ํฌํจํ ๋ค์ํ ์์ค์์ ์ ๋ ฅ์ ์ฝ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
์ฃผ์ ๊ฐ๋
- ํ ํฐํ: ๊ตฌ๋ถ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฅ์ ํ ํฐ์ผ๋ก ๋ถํ ํฉ๋๋ค.
- ์ ๋ ฅ ์คํธ๋ฆผ: Scanner๋ ํ์ผ, ์ ๋ ฅ ์คํธ๋ฆผ ๋ฐ ๋ฌธ์์ด์์ ์ฝ์ ์ ์์ต๋๋ค.
- ์ ๊ท ํํ์: ๋ณต์กํ ํ์ฑ ํจํด์ ํ์ฉํฉ๋๋ค.
Scanner๋ฅผ ์ ํํ๋ ์ด์ ?
- ๋จ์์ฑ: ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํ์ฑํ๋ ๋ฐ ํ์ํ ์ฝ๋๊ฐ ์ต์ํ๋ฉ๋๋ค.
- ์ ์ฐ์ฑ: ์ฌ๋ฌ ๋ฐ์ดํฐ ์์ค์ ์ ํ์ ์ง์ํฉ๋๋ค.
Java ํ๋ก์ ํธ ์ค์
์ฝ๋ ๊ตฌํ์ ๋ฐ์ด๋ค๊ธฐ ์ ์ ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ ์ด ์ค์ํฉ๋๋ค.
ํ๋ก์ ํธ ๊ตฌ์กฐ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
S14L08 - Read a text file in Java using Scanner/ โโโ pom.xml โโโ src/ โ โโโ main/ โ โโโ java/ โ โโโ org/ โ โโโ studyeasy/ โ โโโ Main.java โโโ studyeasy/ โ โโโ test.txt โโโ target/ โโโ classes/ โโโ org/ โโโ studyeasy/ โโโ Main.class |
ํ์ํ ํ์ผ
- pom.xml: ํ๋ก์ ํธ ์์กด์ฑ์ ์ํ Maven ๊ตฌ์ฑ ํ์ผ.
- Main.java: ํ์ผ ์ฝ๊ธฐ ๋ก์ง์ ํฌํจํ๋ ์ฃผ์ Java ํด๋์ค.
- test.txt: ์ฝ์ ์ํ ํ ์คํธ ํ์ผ.
Maven ์ค์
Maven์ด ์์คํ ์ ์ค์น๋๊ณ ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ์ญ์์ค. ์์ ํ์๋ ๋๋ก ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ํ์ํ ํ์ผ์ ํฌํจํ์ญ์์ค.
Scanner๋ฅผ ์ฌ์ฉํ ํ์ผ ์ฝ๊ธฐ ๊ตฌํ
Java์์ Scanner ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ํ์ผ์ ์ฝ๋ ๊ณผ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋จ๊ณ 1: ํ์ํ ํจํค์ง ๊ฐ์ ธ์ค๊ธฐ
ํ์ผ ์ฒ๋ฆฌ ๋ฐ ์์ธ ๊ด๋ฆฌ๋ฅผ ์ํ ํ์ํ Java ํด๋์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ผ๋ก ์์ํ์ญ์์ค.
1 2 3 |
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; |
๋จ๊ณ 2: File ๊ฐ์ฒด๋ก Scanner ์ด๊ธฐํ
์ํ๋ ํ ์คํธ ํ์ผ์ ๊ฐ๋ฆฌํค๋ File ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ์ฌ Scanner ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
1 |
Scanner sc = new Scanner(new File("studyeasy/test.txt")); |
๋จ๊ณ 3: ํ์ผ์ ๋ผ์ธ ๋จ์๋ก ์ฝ๊ธฐ
ํ์ผ์ ๋์ ๋๋ฌํ ๋๊น์ง ๊ฐ ๋ผ์ธ์ ์ฝ๊ธฐ ์ํด ๋ฃจํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
1 2 3 4 |
while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } |
์ ์ฒด ์ฝ๋ ์์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package org.studyeasy; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) { try { // ํ์ผ๋ก Scanner ์ด๊ธฐํ Scanner sc = new Scanner(new File("studyeasy/test.txt")); // ๊ฐ ๋ผ์ธ์ ์ฝ๊ณ ์ถ๋ ฅ while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } // Scanner ๋ซ๊ธฐ sc.close(); } catch (FileNotFoundException e) { System.out.println("ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค!"); e.printStackTrace(); } } } |
์ฝ๋ ์ฃผ์:
-
1Scanner sc = new Scanner(new File("studyeasy/test.txt"));
Scanner๋ฅผ ์ง์ ๋ ํ์ผ์์ ์ฝ๊ธฐ ์ํด ์ด๊ธฐํํฉ๋๋ค. -
1while (sc.hasNextLine()) { ... }
๋ ์ด์ ๋ผ์ธ์ด ์์ ๋๊น์ง ๊ณ์ ์ฝ์ต๋๋ค. -
1String line = sc.nextLine();
ํ์ผ์์ ๋ค์ ๋ผ์ธ์ ๊ฐ์ ธ์ต๋๋ค. -
1System.out.println(line);
๋ผ์ธ์ ์ฝ์์ ์ถ๋ ฅํฉ๋๋ค.
Try-Catch๋ฅผ ์ฌ์ฉํ ์์ธ ์ฒ๋ฆฌ
๊ฒฌ๊ณ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค. ํ์ผ I/O๋ฅผ ๋ค๋ฃฐ ๋ ํ์ผ์ ์ฐพ์ ์ ์๋ ๋ฑ ๋ค์ํ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Try-With-Resources ์ฌ์ฉ
Java์ try-with-resources ๋ฌธ์ ๊ฐ ๋ฆฌ์์ค๊ฐ ๋ฌธ์ฅ ๋์์ ์๋์ผ๋ก ๋ซํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
1 2 3 4 5 6 7 8 9 |
try (Scanner sc = new Scanner(new File("studyeasy/test.txt"))) { while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } } catch (FileNotFoundException e) { System.out.println("ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค!"); e.printStackTrace(); } |
์ฅ์ :
- ์๋ ๋ฆฌ์์ค ๊ด๋ฆฌ: Scanner๊ฐ ์๋์ผ๋ก ๋ซํ๋๋ค.
- ๋ ๊น๋ํ ์ฝ๋: ๋ช
์์ ์ธ
sc.close()
๊ฐ ํ์ ์์ต๋๋ค.
Scanner์ BufferedReader ๋น๊ต
Scanner์ BufferedReader๋ ๋ชจ๋ Java์์ ํ ์คํธ ํ์ผ์ ์ฝ๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง, ๋ช ํํ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
Scanner
- ์ฅ์ :
- ๊ฐ๋จํ ๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค.
- ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ํ์ฑ์ ์ง์ํฉ๋๋ค.
- ์๊ท๋ชจ์์ ์ค๊ฐ ํฌ๊ธฐ์ ํ์ผ์ ์ ํฉํฉ๋๋ค.
- ๋จ์ :
- BufferedReader์ ๋นํด ์ฑ๋ฅ์ด ๋๋ฆฝ๋๋ค.
- ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ๋ ๋ง์ต๋๋ค.
BufferedReader
- ์ฅ์ :
- ํนํ ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋ ๋น ๋ฅธ ์ฝ๊ธฐ ์๋.
- ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ.
- ๋์ฉ๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฝ๊ธฐ์ ์ด์์ ์ ๋๋ค.
- ๋จ์ :
- ๋ ์ฅํฉํ ์ฝ๋.
- ํ์ฑ ์์ด ๋ผ์ธ ์ฝ๊ธฐ์ ์ ํ์ ์ ๋๋ค.
๋น๊ต ํ
ํน์ง | Scanner | BufferedReader |
---|---|---|
์ฌ์ฉ ์ฉ์ด์ฑ | ๊ฐ๋จํ๊ณ ์ง๊ด์ | ๋ ๋ง์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋ ํ์ |
์ฑ๋ฅ | ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋๋ฆผ | ๋์ฉ๋ ํ์ผ์ ๊ฒฝ์ฐ ๋น ๋ฆ |
๊ธฐ๋ฅ | ํ ํฐ ๊ธฐ๋ฐ ์ฝ๊ธฐ | ๋ผ์ธ ๊ธฐ๋ฐ ์ฝ๊ธฐ |
์์ธ ์ฒ๋ฆฌ | try-with-resources๋ก ๋จ์ํ | ๋ช ์์ ์ฒ๋ฆฌ๊ฐ ํ์ |
์ถ๋ ฅ ๋ฐ ์คํ
์ ๊ณต๋ Java ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด test.txt
์ ๋ด์ฉ์ ์ฝ์ด ์ฝ์์ ํ์ํฉ๋๋ค.
์ํ test.txt
๋ด์ฉ
1 2 3 4 5 6 7 8 9 10 |
Hello World Isn't this world a beautiful place to live. Peace!!... |
์์ ์ฝ์ ์ถ๋ ฅ
1 2 3 4 5 6 7 8 9 10 |
Hello World Isn't this world a beautiful place to live. Peace!!... |
์ค๋ช
test.txt
ํ์ผ์ ๊ฐ ๋ผ์ธ์ Scanner์ ์ํด ์์ฐจ์ ์ผ๋ก ์ฝํ์ง๊ณ ์ฝ์์ ์ถ๋ ฅ๋๋ฉฐ, ๊ตฌํ๋ ์ฝ๋์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ฒฐ๋ก
Scanner ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ Java์์ ํ ์คํธ ํ์ผ์ ์ฝ๋ ๊ฒ์ ๊ฐ๋จํ ๊ณผ์ ์ผ๋ก, ํนํ ์ด๋ณด์์ ๊ธฐ๋ณธ ์ง์์ ๊ฐ์ง ๊ฐ๋ฐ์์๊ฒ ์ ํฉํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ ํ๋ก์ ํธ ์ค์ ๋ถํฐ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํฌํจํ ๊ฒฌ๊ณ ํ ํ์ผ ์ฝ๊ธฐ ๊ตฌํ์ ์ด๋ฅด๊ธฐ๊น์ง ์ข ํฉ์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํ์ต๋๋ค.
์ฃผ์ ์์ :
- Scanner๋ ํ์ผ์ ์ฝ๊ณ ํ์ฑํ๋ ๋ฐ ์์ด ๋จ์์ฑ๊ณผ ์ฌ์ฉ ์ฉ์ด์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ์ ์ ํ ์์ธ ์ฒ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋ฅ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- Scanner์ BufferedReader์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ฉด ํ์์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Java์ ํ์ผ I/O ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ํฅ์์ํค์ญ์์ค.
์ฐธ๊ณ : ์ด ๊ธฐ์ฌ๋ AI์ ์ํด ์์ฑ๋์์ต๋๋ค.