๐ฅ๏ธ ๋ฐฑ์๋/Java32 ์ด์ 1 2 3 4 5 ๋ค์ [ch.15] ์ ์ถ๋ ฅ I/O - ๋ฐ์ดํธ ์คํธ๋ฆผ ๋ฐ์ดํธ ๊ธฐ๋ฐ ์คํธ๋ฆผ ByteArray I/O ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅํ๋๋ฐ ์ฌ์ฉํ๋ ์คํธ๋ฆผ. ์ฃผ๋ก ๋ค๋ฅธ ๊ณณ์ ์ ์ถ๋ ฅ ํ๊ธฐ ์ ์ ์์๋ก ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ด์์ ๋ณํํ๋ ๋ฑ์ ์์ ์ ์ฌ์ฉํจ. ์ฌ์ฉํ๋ ์์์ ์ค์ง ๋ฉ๋ชจ๋ฆฌ์. GC์ ์ํด์ ์๋์ ์ผ๋ก ์์์ด ๋ฐํ๋๋ฏ๋ก close()์ฌ์ฉ X. ํ๋ฒ์ 1byte ์ฝ๊ณ ์ฐ๊ธฐ๋ง ํด์ ์์ ํจ์จ์ด ๋จ์ด์ง. “๋ฐฐ์ด”์ด์ฉ์ ์ ์ถ๋ ฅ ์์ ํจ์จ์ด ๋์์ง. read( )๋ write( )๊ฐ IOException์ ๋ฐ์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ try-catch๋ฌธ์ผ๋ก ๊ฐ์ธ์ค. available( ): ํด๋น ์คํฌ๋ฆผ์์ ์ฝ์ด์ฌ ์ ์๋ ๋ฐ์ดํธ์ ์๋ฅผ ์์ํ ์ ์์. ์ ํํ๊ฐ์ X. File I/O ํ์ผ์ ์ ์ถ๋ ฅ์ ํ๊ธฐ ์ํ ์คํธ๋ฆผ. ์ค์ ํ๋ก๊ทธ๋๋ฐ์ ๋ง์ด ์ฌ์ฉํจ. ํ ์คํธํ์ผ์ ๋ฌธ์๊ธฐ๋ฐ ์ค.. 2023. 11. 21. [ch.15] ์ ์ถ๋ ฅ I/O I/O Input, Output ์ ์ถ๋ ฅ, ์ฅ์น์ ํ๋ก๊ทธ๋จ๊ฐ์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ NIO๋ผ๋ ๊ฒ๋ ์์(non-blocking I/O) ์คํธ๋ฆผ ์ ์ถ๋ ฅ์์์์คํธ๋ฆผ์ 14์ฅ์์คํธ๋ฆผ๊ณผ๋ ๋ค๋ฅธ๊ฐ๋ . 15์ฅ์ ์คํธ๋ฆผ์ I/O๋ฅผ ์ฝ๊ฒ ๋์์ฃผ๋ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ฒฐํต๋ก. ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํจ. ์ /์ถ๋ ฅ ๋์์ ์ํ ์ 2๊ฐ์ ์คํธ๋ฆผ์ด ํ์ํจ. ๋จผ์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๋ฐ์. ์ค๊ฐ์ ๊ฑด๋๋ ์์ด ์ฐ์์ ์ธ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ. ์ด๋ค๋์์ ์์ ํ๋์ง?์ ๋ ฅ/์ถ๋ ฅ์ธ์ง? ๊ณ ๋ คํด์ ํด๋น ์คํธ๋ฆผ์ ์ฌ์ฉํจ. ์คํธ๋ฆผ์ ์ต๊ณ ์กฐ์ InputStream Read. ์ฝ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ) OutputStream Write. ์ฐ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ) ๋ณด์กฐ์คํธ๋ฆผ ์คํธ๋ฆผ์ ๊ธฐ๋ฅ์ ๋ณด์ํ๊ธฐ ์ํจ. ์คํธ๋ฆผ ๊ธฐ์ ํฅ์๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐํ .. 2023. 11. 20. [ch.14] Optional<T>์ OptionalInt Optional ์ง๋ค๋ฆญ ํด๋์ค. Tํ์ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ๋ ๋ํผํด๋์ค. Optionalํ์ ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๋ด์ ์ ์์. Optional ๊ฐ์ฒด์์ฑ Optionalํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๊ธฐ Optional.empty(): T ํ์ ์ ๋น Optional ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ public static ๋ฉ์๋. Optional ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ Optional ๊ฐ์ฒด์ ์ฌ์ฉ๊ฐ๋ฅํ ์คํธ๋ฆผ ๋ฉ์๋ filter( ), map( ), flatMap( ) Optional๊ฐ์ด null์ด๋ฉด ์ด ๋ฉ์๋๋ค์ ์๋ฌด์ผ๋ ํ์ง ์์. boolean์ผ๋ก ๋ฐํํ๋ ๋ฉ์๋ Stream์๋ฉ์๋์ค Optional๋ฅผ ๋ฐํํ๋ ๊ฒ ๊ณตํต์ : null์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ํฐ ๊ฒ๋ค, ์คํธ๋ฆผ์ด ๋น์ด์์ ์ ์๊ธฐ ๋๋ฌธ. Op.. 2023. 11. 20. [ch.14] ์คํธ๋ฆผ์ ์ต์ข ์ฐ์ฐ ์ฐ์ ์ด๊ฑฐ ์ธ์ ๋ณต๋ถํ์ง ใ ใ .. ์ผ๋จ ์ด๋ฏธ์ง๋ก ์ ๋ก๋ํฉ๋๋ค 2023. 11. 15. [ch.14] ์คํธ๋ฆผ์ ์ค๊ฐ์ฐ์ฐ ์คํธ๋ฆผ ์๋ฅด๊ธฐ : skip, limit ์คํธ๋ฆผ์ ์ผ๋ถ๋ฅผ ์๋ผ๋ผ ๋ ์ฌ์ฉํจ. skip( ): n๊ฐ ๊ฑด๋๋ฐ๊ธฐ limit( ): ์์๋ฅผ n๊ฐ๋ก ์ ํํ๊ธฐ ๊ธฐ๋ณธํ ์คํธ๋ฆผ์๋ ๊ฐ์ ๋ฉ์๋๊ฐ ์์. ์คํธ๋ฆผ์ ์์ ๊ฑธ๋ฌ๋ด๊ธฐ : distinct, filter distinct( ): ์ค๋ณต ์ ๊ฑฐ filter( ): ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง๋ ๊ฒ๋ง ๋จ๊น. ๋งค๊ฐ๋ณ์๋ก Predicate๊ฐ ํ์ํจ. ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ boolean์ธ ๋๋ค์๋ ๊ฐ๋ฅํจ. ๋ค๋ฅธ ์กฐ๊ฑด์ ๋งค๊ฐ๋ณ์๋ก ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ์ ์์. ex) ์คํธ๋ฆผ.filter(A).filter(B).filter(C) ์ ๋ ฌํ๊ธฐ : sorted, Comparator์ธํฐํ์ด์ค์ ๋ฉ์๋ sorted( ): ์ง์ ๋ Comparator๋ก ์คํธ๋ฆผ์ ์ ๋ ฌํจ. Comparator๋์ int๊ฐ์ ๋ฐํํ๋ ๋๋ค์์ .. 2023. 11. 15. [ch.14] ์คํธ๋ฆผ์ ์์ฑ ์คํธ๋ฆผ์ผ๋ก ์์ ํ๋ ค๋ฉด ์คํธ๋ฆผ์ด ํ์ํจ. ๋ค์ํ ์์ค๋ก๋ถํฐ ์คํธ๋ฆผ์ ์์ฑํ ์ ์์. ์ปฌ๋ ์ : stream Collection ์ธํฐํ์ด์ค์ stream( ) ์ ์๋์ด์์. List, Set์ ๊ตฌํํ ํด๋์ค๋ค์ ๋ชจ๋ ์ด ๋ฉ์๋๋ก ์คํธ๋ฆผ์ ์์ฑํ ์ ์์. stream( )๋ฉ์๋๋ ํด๋น ์ปฌ๋ ์ ์ ์์ค๋ก ํ๋ ์คํธ๋ฆผ์ ๋ฐํํจ. ๋ฐฐ์ด : stream, of ๋ฐฐ์ด์ ์์ค๋ก ํ๋ ์คํธ๋ฆผ์ ์์ฑํ๋ ๋ฉ์๋ ํน์ ๋ฒ์์ ์ ์ : range, rangeClosed IntStream, Long Streamํด๋์ค๋ ์ง์ ๋ ๋ฒ์์ ์ฐ์๋ ์ ์๋ฅผ ์คํธ๋ฆผ์ผ๋ก ์์ฑํด์ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์. range( begin, end ), rangeClosed( begin, end ) ๋น์คํธ๋ฆผ : empty ์ฐ์ฐ์ ์ํํ ๊ฒฐ๊ณผ๊ฐ ์.. 2023. 11. 15. [ch.14] ์คํธ๋ฆผ์ ํน์ง ์คํธ๋ฆผ ๋ฐ์ดํฐ์์ค ์ถ์ํ + (์์ฃผ์ฌ์ฉํ๋)๋ฉ์๋ ์ ์ ๋ฐ์ดํฐ์์ค ์ถ์ํ: ๋ฐ์ดํฐ์์ค๊ฐ ๋ฌด์์ด๋ ๊ฐ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ=์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ↑ (๋ฐฐ์ด, ์ปฌ๋ ์ , ํ์ผ๋ฐ์ดํฐ ๋ชจ๋ ๊ฐ๋ฅํจ) ์ ํ์คํธ๋ฆผ/๋ฌดํ์คํธ๋ฆผ์ด ์์. ์คํธ๋ฆผ์ ํน์ง โ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค. ๋ฐ์ดํฐ ์์ค๋ก๋ถํฐ ์ฝ๊ธฐ๋ง ํจ. ๋ณ๊ฒฝ์ X. ํ์์ ๋ฐํ์ด ๊ฐ๋ฅํจ(๊ฒฐ๊ณผ๋ฅผ ๋ด์ ์ปฌ๋ ์ /๋ฐฐ์ด) โ ์คํธ๋ฆผ์ ์ผํ์ฉ์ด๋ค. ํ ๋ฒ ์ฌ์ฉํ๋ฉด(์ต์ข ์ฐ์ฐ์ํ) ์คํธ๋ฆผ ๋ซํ์ ๋ค์ ์ฌ์ฉํ ์ ์์. ํ์์ ๋ค์ ์์ฑํ๋ฉด ๋จ. โ ์คํธ๋ฆผ์ ์์ ์ ๋ด๋ถ๋ฐ๋ณต์ผ๋ก ์ฒ๋ฆฌํ๋ค. ๋ด๋ถ๋ฐ๋ณต=๋ฐ๋ณต๋ฌธ์ ๋ฉ์๋ ๋ด๋ถ์ ์จ๊ธธ ์ ์๋ ๊ฒ. โ ์คํธ๋ฆผ์ ์ฐ์ฐ์ ์ค๊ฐ์ฐ์ฐ๊ณผ ์ต์ข ์ฐ์ฐ์ด ์๋ค. ๋ค์ํ ์ฐ์ฐ์ ์ ๊ณตํด์ ๋ณต์กํ ์์ ๋ค์ ๊ฐ๋จํ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํจ. *์ค๊ฐ์ฐ์ฐ:.. 2023. 11. 15. ์ด์ 1 2 3 4 5 ๋ค์