๐Ÿ““ Do it! ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ

์ž๋ฐ” ์ž…์ถœ๋ ฅ๊ณผ ์ŠคํŠธ๋ฆผ

1. ์ŠคํŠธ๋ฆผ

- ์ž๋ฐ”๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฌด๊ด€ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์ข…์˜ ๊ฐ€์ƒ ํ†ต๋กœ์ธ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณต

- ์ž๋ฃŒ๋ฅผ ์ฝ์–ด ๋“ค์ด๋ ค๋Š” ์†Œ์Šค(source)์™€ ์ž๋ฃŒ๋ฅผ ์“ฐ๋ ค๋Š” ๋Œ€์ƒ(target)์— ๋”ฐ๋ผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ ๊ธ€๋ž˜์Šค๋ฅผ ์ œ๊ณต

- ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ: ํŒŒ์ผ ๋””์Šคํฌ, ํ‚ค๋ณด๋“œ, ๋ชจ๋‹ˆํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ์ž…์ถœ๋ ฅ, ๋„คํŠธ์›Œํฌ ๋“ฑ

2. ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ๊ณผ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

- ์ŠคํŠธ๋ฆผ์€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ž๋ฃŒ๊ฐ€ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†์Œ

- ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ: InputStream์ด๋‚˜ Reader๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์˜ ํด๋ž˜์Šค

- ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ: OutputStream์ด๋‚˜ Writer๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์˜ ํด๋ž˜์Šค

3. ๋ฐ”์ดํŠธ ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ๊ณผ ๋ฌธ์ž ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ

- ์›๋ž˜ ์ž๋ฐ”์˜ ์ŠคํŠธ๋ฆผ์€ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ž๋ฃŒ์˜ ์ž…์ถœ๋ ฅ์ด ์ด๋ฃจ์–ด์ง

- ์ž๋ฐ”์—์„œ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” charํ˜•์€ 2๋ฐ”์ดํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— 1๋ฐ”์ดํŠธ๋งŒ ์ฝ์œผ๋ฉด ํ•œ๊ธ€ ๊ฐ™์€ ๋ฌธ์ž๋Š” ๊นจ์ง

- ์ž…์ถœ๋ ฅ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ์ธ ๋ฌธ์ž๋ฅผ ์œ„ํ•ด ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์„ ๋ณ„๋„๋กœ ์ œ๊ณต

- ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ: Stream์œผ๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์˜ ํด๋ž˜์Šค

- ๋ฌธ์ž ์ŠคํŠธ๋ฆผ: Reader๋‚˜ Writer๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์˜ ํด๋ž˜์Šค

4. ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ๊ณผ ๋ณด์กฐ ์ŠคํŠธ๋ฆผ

- ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ: ์ฝ์–ด๋“ค์ผ ๊ณณ(์†Œ์Šค)์ด๋‚˜ ์จ์•ผํ•  ๊ณณ(๋Œ€์ƒ)์—์„œ ์ง์ ‘ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž…์ถœ๋ ฅ ๋Œ€์ƒ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์ƒ์„ฑ๋˜๋Š” ์ŠคํŠธ๋ฆผ

- ๋ณด์กฐ ์ŠคํŠธ๋ฆผ: ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๋Š” ๊ธฐ๋Šฅ์€ ์—†์œผ๋ฉฐ ํ•ญ์ƒ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์„ ํฌํ•จํ•˜์—ฌ ์ƒ์„ฑ๋จ

์ž๋ฐ” ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค ์ด๋ฆ„์—์„œ ์ŠคํŠธ๋ฆผ ํŠน์„ฑ ์œ ์ถ”ํ•˜๊ธฐ
ex)
FileInputStream
- InputStream = ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ
- Stream = ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ
- File = ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๋Š” ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ

ํ‘œ์ค€ ์ž…์ถœ๋ ฅ

1. Scanner ํด๋ž˜์Šค

- java.util ํŒจํ‚ค์ง€์— ์žˆ๋Š” ์ž…๋ ฅ ํด๋ž˜์Šค

- ๋ฌธ์ž๋ฟ ์•„๋‹ˆ๋ผ ์ •์ˆ˜, ์‹ค์ˆ˜ ๋“ฑ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•๋„ ์ฝ์„ ์ˆ˜ ์žˆ์Œ

- ์ฝ˜์†” ํ™”๋ฉด๋ฟ ์•„๋‹ˆ๋ผ ํŒŒ์ผ์ด๋‚˜ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ์ž๋ฃŒ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์Œ

- Scanner scanner = new Scanner(System.in)

์˜ˆ์™ธ ํด๋ž˜์Šค

1. ์˜ค๋ฅ˜์™€ ์˜ˆ์™ธ

- ์‹คํ–‰์˜ค๋ฅ˜: ์‹œ์Šคํ…œ ์˜ค๋ฅ˜(error), ์˜ˆ์™ธ(exception)

- ์˜ค๋ฅ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์—†์ง€๋งŒ ์˜ˆ์™ธ๋Š” ์ œ์–ด ๊ฐ€๋Šฅ

- ์˜ˆ์™ธ: ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŒŒ์ผ์„ ์ฝ์–ด ์‚ฌ์šฉํ•˜๋ ค๋Š”๋ฐ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ, ๋„คํŠธ์›Œํฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ ค๋Š”๋ฐ ์—ฐ๊ฒฐ์ด ์•ˆ ๋œ ๊ฒฝ์šฐ, ๋ฐฐ์—ด ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ ค๋Š”๋ฐ ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ

- ์˜ค๋ฅ˜ ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ Throwable ํด๋ž˜์Šค์—์„œ ์ƒ์†๋ฐ›์Œ

2. ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ข…๋ฅ˜

- ์ž…์ถœ๋ ฅ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(IOException)

- ์‹คํ–‰ ์˜ค๋ฅ˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(RuntimeException)

'์˜ค๊ณต์™„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

231115 ์˜ค๊ณต์™„  (0) 2023.11.16
231105 ์˜ค๊ณต์™„  (0) 2023.11.05
231101 ์˜ค๊ณต์™„  (0) 2023.11.02
231031 ์˜ค๊ณต์™„  (0) 2023.11.01
231030 ์˜ค๊ณต์™„  (0) 2023.10.31

+ Recent posts