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

java51

[Java-๊ธฐ์ดˆ] ์ž๋ฐ” ์ž…์ถœ๋ ฅ (Stream) โ–ถ ์ž๋ฐ” ์ž…์ถœ๋ ฅ โ€‹ *์ŠคํŠธ๋ฆผ์ด๋ž€? ์ž๋ฐ”์—์„œ ๋ชจ๋“  ์ž…์ถœ๋ ฅ์€ ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ž…์ถœ๋ ฅ ์žฅ์น˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์น˜์— ๋”ฐ๋ผ ์ž…์ถœ๋ ฅ ๋ถ€๋ถ„์„ ์ผ์ผ์ด ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„์„ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ํ˜ธํ™˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฐ”๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฌด๊ด€ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์ข…์˜ ๊ฐ€์ƒ ํ†ต๋กœ์ธ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณตํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *์ž…๋ ฅ·์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ์€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ž๋ฃŒ๊ฐ€ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†๋‹ค. ์ž…๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™์ด ์ถœ๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™๊ณผ ํ•œ ์ŠคํŠธ๋ฆผ์—์„œ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ข…๋ฅ˜ ์˜ˆ์‹œ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ FileInputStream, FileReader, BufferedInputStream, BufferedReader ๋“ฑ ์ถœ๋ ฅ .. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ โ€‹โ–ถ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ โ€‹ *์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋ฏธ๋ฃจ๋Š” throws ์‚ฌ์šฉํ•˜๊ธฐ ์˜ˆ์™ธ๋ฅผ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๋ฏธ๋ฃฌ ํ›„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•. -15ํ–‰์— ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค -์ด๊ฑธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 1. ์—ฌ๋Ÿฌ ์˜ˆ์™ธ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ 2. ์˜ˆ์™ธ ์ƒํ™ฉ๋งˆ๋‹ค ์ฒ˜๋ฆฌํ•˜๊ธฐ 3. throws ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ (์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ) ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์•„๋‹˜. ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋จ. ๊ฐ€ ์žˆ๋‹ค. โ€‹ โ€‹ โ€‹ *๋‹ค์ค‘ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์—ฌ๋Ÿฌ catch๋ฌธ์„ ํ•œ๊บผ๋ฒˆ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฐ catch ๋ธ”๋ก์€ ๊ฐ๊ฐ์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ์–ด๋–ค ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ• ์ง€ ๋ฏธ๋ฆฌ ์•Œ์ˆ˜ ์—†์ง€๋งŒ ๋ชจ๋“  ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— Exception ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ catch ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•œ.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] try-with-resources๋ฌธ โ–ถ try-with-resources๋ฌธ โ€‹ -AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค try-with-resources ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” close( ) ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” close( )๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ close( ) ๋ฉ”์„œ๋“œ ๋ถ€๋ถ„์ด ํ˜ธ์ถœ๋œ๋‹ค. โ€‹ โ€‹ AutoCloseObj.java package exception; public class AutoCloseObj implements AutoCloseable { @Override public void close() throws Exception { System.out.println("๋ฆฌ์†Œ์Šค๊ฐ€ close() ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."); }.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ โ–ถ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋งŽ์€ ์˜ˆ์™ธํด๋ž˜์Šค๋“ค์€ ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚จ๋Š” ๊ฒƒ์ด ๋งŽ๋‹ค. โ€‹ โ€‹ *ํŒŒ์ผ ์ž…์ถœ๋ ฅ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ž๋ฐ”์—์„œ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์ŠคํŠธ๋ฆผ(stream) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. package exception; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ExceptionHandling1 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("a.txt"); } catch (FileNotFoundE.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์˜ˆ์™ธ ํด๋ž˜์Šค โ–ถ ์˜ˆ์™ธ ํด๋ž˜์Šค โ€‹ *์˜ค๋ฅ˜๋ž€? ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค. 1. ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘ ์‹ค์ˆ˜๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋Œ€๋ถ€๋ถ„ ์›์ธ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 2. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์„ ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘์ง€๋˜๋Š” ์‹คํ–‰ ์˜ค๋ฅ˜ ์‹คํ–‰ ์˜ค๋ฅ˜ ์ค‘ ํ”„๋กœ๊ทธ๋žจ์„ ์ž˜๋ชป ๊ตฌํ˜„ํ•˜์—ฌ ์˜๋„ํ•œ ๋ฐ”์™€ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋˜์–ด ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๋ฅผ '๋ฒ„๊ทธโ€‹'๋ผ๊ณ  ํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *์˜ค๋ฅ˜์™€ ์˜ˆ์™ธ ์‹คํ–‰ ์˜ค๋ฅ˜๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์Šคํ…œ ์˜ค๋ฅ˜(error)์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์˜ˆ์™ธ(exception)์ด๋‹ค. ์‹œ์Šคํ…œ ์˜ค๋ฅ˜์˜ ์˜ˆ๋กœ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋™์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋‚˜ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋“ฑ์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค. → ์ด๋Ÿฐ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ์–ด.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์ŠคํŠธ๋ฆผ โ–ถ ์ŠคํŠธ๋ฆผ โ€‹ *์ŠคํŠธ๋ฆผ์ด๋ž€? ์—ฌ๋Ÿฌ ์ž๋ฃŒ์˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋†“์€ ํด๋ž˜์Šค๊ฐ€ ์ŠคํŠธ๋ฆผ(stream)์ด๋‹ค. ์ŠคํŠธ๋ฆผ์„ ํ™œ์šฉํ•˜๋ฉด ๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜ ๋“ฑ์˜ ์ž๋ฃŒ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฃŒ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์„ ๊ฐ๊ฐ ์ƒˆ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ž๋ฃŒ๊ฐ€ ๋ฌด์—‡์ธ์ง€์™€ ์ƒ๊ด€์—†์ด ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. โ€‹ -๋ฐฐ์—ด ์ถœ๋ ฅ๋ฌธ int[] arr = {1, 2, 3, 4, 5}; for(int i = 0; i System.out.println(n)); ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฏธ๋ฆฌ ๊ตฌ.. 2021. 2. 22.
๋ฐ˜์‘ํ˜•