๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Java107

[Java-๊ธฐ์ดˆ] ๋ฌธ์ž ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ โ–ถ ๋ฌธ์ž ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ โ€‹ *Reader ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ฝ๋Š” ์ŠคํŠธ๋ฆผ ์ค‘ ์ตœ์ƒ์œ„ ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค ์„ค๋ช… FileReader ํŒŒ์ผ์—์„œ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ฝ๋Š” ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์ด๋‹ค. InputStreamReader byte ๋‹จ์œ„๋กœ ์ฝ์€ ์ž๋ฃŒ๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ๋ณด์กฐ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์ด๋‹ค. BufferedReader ๋ฌธ์ž๋กœ ์ฝ์„ ๋•Œ ๋ฐฐ์—ด์„ ์ œ๊ณตํ•˜์—ฌ ํ•œ๊บผ๋ฒˆ์— ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๋ณด์กฐ ์ŠคํŠธ๋ฆผ์ด๋‹ค. ๋ฉ”์„œ๋“œ ์„ค๋ช… int read( ) ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ํ•œ ๋ฌธ์ž๋ฅผ ์ฝ๋Š”๋‹ค. ์ฝ์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. int read(char[ ] buf) ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ buf ๋ฐฐ์—ด์— ๋ฌธ์ž๋ฅผ ์ฝ๋Š”๋‹ค. int read(char[ ] buf, int off, int len) ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ buf ๋ฐฐ์—ด์˜ off ์œ„์น˜์—์„œ๋ถ€ํ„ฐ len ๊ฐœ์ˆ˜๋งŒํผ ๋ฌธ์ž๋ฅผ ์ฝ๋Š”๋‹ค. vo.. 2021. 2. 23.
[Java-๊ธฐ์ดˆ] byte ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ โ–ถ byte ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ โ€‹ *InputStream byte ๋‹จ์œ„๋กœ ์ฝ๋Š” ์ŠคํŠธ๋ฆผ ์ค‘ ์ตœ์ƒ์œ„ ์ŠคํŠธ๋ฆผ์ด๋‹ค. InputStream์€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ์„œ ํ•˜์œ„ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†๋ฐ›์•„ ๊ฐ ํด๋ž˜์Šค ์—ญํ• ์— ๋งž๊ฒŒ ์ถ”์ƒ ๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *InputStream์ด ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์œ„ ํด๋ž˜์Šค ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค ์„ค๋ช… FileInputStream ํŒŒ์ผ์—์„œ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ž๋ฃŒ๋ฅผ ์ฝ๋Š”๋‹ค. ByteArrayInputStream Byte ๋ฐฐ์—ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ž๋ฃŒ๋ฅผ ์ฝ๋Š”๋‹ค. FilterInputStream ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์—์„œ ์ž๋ฃŒ๋ฅผ ์ฝ์„ ๋•Œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ณด์กฐ ์ŠคํŠธ๋ฆผ์˜ ์ƒ์œ„ ํด๋ž˜์Šค์ด๋‹ค. (๋ณด์กฐ ์ŠคํŠธ๋ฆผ์€ '15-5 ๋ณด์กฐ ์ŠคํŠธ๋ฆผ'์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•œ๋‹ค.) โ€‹ InputStream์€ byte ์ž.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ๊ทธ ์™ธ ์ž…๋ ฅ ํด๋ž˜์Šค โ–ถ ๊ทธ ์™ธ ์ž…๋ ฅ ํด๋ž˜์Šค โ€‹ -Scanner ํด๋ž˜์Šค Scanner ํด๋ž˜์Šค๋Š” java.util ํŒจํ‚ค์ง€์— ์žˆ๋Š” ์ž…๋ ฅ ํด๋ž˜์Šค์ด๋‹ค. Scanner ํด๋ž˜์Šค๋Š” ๋ฌธ์ž๋ฟ ์•„๋‹ˆ๋ผ ์ •์ˆ˜, ์‹ค์ˆ˜ ๋“ฑ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ฝ˜์†” ํ™”๋ฉด๋ฟ ์•„๋‹ˆ๋ผ ํŒŒ์ผ์ด๋‚˜ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ์ž๋ฃŒ๋ฅผ ์ฝ์–ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. Scanner scanner = new Scanner(System.in)์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฉด ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ๋ถ€ํ„ฐ ์ž๋ฃŒ๋ฅผ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค. ์ƒ์„ฑ์ž ์„ค๋ช… Scanner(File Source) ํŒŒ์ผ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ Scanner๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Scanner(InputStream source) ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ Scanner๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Scanner(String source) String์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ํ‘œ์ค€ ์ž…์ถœ๋ ฅ โ–ถ ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์ž๋ฐ”์—์„œ๋Š” ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ณ  ์ž…๋ ฅ๋ฐ›๋Š” ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ํด๋ž˜์Šค๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋‘์—ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋  ๋•Œ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ๋”ฐ๋กœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ํ™”๋ฉด ์ถœ๋ ฅ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ System.out์€ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ์œ„ํ•œ ๊ฐ์ฒด์ด๋‹ค. ํ‘œ์ค€ ์ž…์ถœ๋ ฅ์€ ์ฝ˜์†” ํ™”๋ฉด์— ์ž…์ถœ๋ ฅ๋œ๋‹ค๊ณ  ํ•ด์„œ ์ฝ˜์†” ์ž…์ถœ๋ ฅ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *ํ‘œ์ค€ ์ž…์ถœ๋ ฅ์„ ์œ„ํ•œ System ํด๋ž˜์Šค ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜ ์ด๋ฆ„ ์„ค๋ช… static PrintStream out ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ static InputStream in ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ static OutputStream err ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ System.out์€ ํ‘œ์ค€ ์ถœ๋ ฅ์šฉ ์ŠคํŠธ๋ฆผ System.in์€ ํ‘œ์ค€ ์ž…๋ ฅ์šฉ ์ŠคํŠธ๋ฆผ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ๋Š” Syste.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์ž๋ฐ” ์ž…์ถœ๋ ฅ (Stream) โ–ถ ์ž๋ฐ” ์ž…์ถœ๋ ฅ โ€‹ *์ŠคํŠธ๋ฆผ์ด๋ž€? ์ž๋ฐ”์—์„œ ๋ชจ๋“  ์ž…์ถœ๋ ฅ์€ ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ž…์ถœ๋ ฅ ์žฅ์น˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์น˜์— ๋”ฐ๋ผ ์ž…์ถœ๋ ฅ ๋ถ€๋ถ„์„ ์ผ์ผ์ด ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„์„ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ํ˜ธํ™˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฐ”๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฌด๊ด€ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์ข…์˜ ๊ฐ€์ƒ ํ†ต๋กœ์ธ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณตํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *์ž…๋ ฅยท์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ์€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ž๋ฃŒ๊ฐ€ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†๋‹ค. ์ž…๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™์ด ์ถœ๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™๊ณผ ํ•œ ์ŠคํŠธ๋ฆผ์—์„œ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ข…๋ฅ˜ ์˜ˆ์‹œ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ FileInputStream, FileReader, BufferedInputStream, BufferedReader ๋“ฑ ์ถœ๋ ฅ .. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ โ€‹โ–ถ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ โ€‹ *์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋ฏธ๋ฃจ๋Š” throws ์‚ฌ์šฉํ•˜๊ธฐ ์˜ˆ์™ธ๋ฅผ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๋ฏธ๋ฃฌ ํ›„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•. -15ํ–‰์— ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค -์ด๊ฑธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 1. ์—ฌ๋Ÿฌ ์˜ˆ์™ธ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ 2. ์˜ˆ์™ธ ์ƒํ™ฉ๋งˆ๋‹ค ์ฒ˜๋ฆฌํ•˜๊ธฐ 3. throws ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ (์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ) ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์•„๋‹˜. ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋จ. ๊ฐ€ ์žˆ๋‹ค. โ€‹ โ€‹ โ€‹ *๋‹ค์ค‘ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์—ฌ๋Ÿฌ catch๋ฌธ์„ ํ•œ๊บผ๋ฒˆ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฐ catch ๋ธ”๋ก์€ ๊ฐ๊ฐ์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ์–ด๋–ค ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ• ์ง€ ๋ฏธ๋ฆฌ ์•Œ์ˆ˜ ์—†์ง€๋งŒ ๋ชจ๋“  ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— Exception ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ catch ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•œ.. 2021. 2. 22.
๋ฐ˜์‘ํ˜•