I/O
- Input, Output
- ์ ์ถ๋ ฅ, ์ฅ์น์ ํ๋ก๊ทธ๋จ๊ฐ์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ
- NIO๋ผ๋ ๊ฒ๋ ์์(non-blocking I/O)
์คํธ๋ฆผ
- ์ ์ถ๋ ฅ์์์์คํธ๋ฆผ์ 14์ฅ์์คํธ๋ฆผ๊ณผ๋ ๋ค๋ฅธ๊ฐ๋ .
- 15์ฅ์ ์คํธ๋ฆผ์ I/O๋ฅผ ์ฝ๊ฒ ๋์์ฃผ๋ ๊ฐ์ฒด
- ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ฒฐํต๋ก.
- ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํจ.
- ์ /์ถ๋ ฅ ๋์์ ์ํ ์ 2๊ฐ์ ์คํธ๋ฆผ์ด ํ์ํจ.
- ๋จผ์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๋ฐ์.
- ์ค๊ฐ์ ๊ฑด๋๋ ์์ด ์ฐ์์ ์ธ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ.
- ์ด๋ค๋์์ ์์ ํ๋์ง?์ ๋ ฅ/์ถ๋ ฅ์ธ์ง? ๊ณ ๋ คํด์ ํด๋น ์คํธ๋ฆผ์ ์ฌ์ฉํจ.
์คํธ๋ฆผ์ ์ต๊ณ ์กฐ์
- InputStream
- Read. ์ฝ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ)
- OutputStream
- Write. ์ฐ๊ธฐ๋ฅผ ๋์์ค(๋ฐ์ดํธ๊ธฐ๋ฐ)
๋ณด์กฐ์คํธ๋ฆผ
- ์คํธ๋ฆผ์ ๊ธฐ๋ฅ์ ๋ณด์ํ๊ธฐ ์ํจ.
- ์คํธ๋ฆผ ๊ธฐ์ ํฅ์๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐํ ์ ์์.
- ์คํธ๋ฆผ์ ๋จผ์ ์์ฑํ ๋ค์์ ์ด๋ฅผ ์ด์ฉํด์ ๋ณด์กฐ์คํธ๋ฆผ์ ์์ฑํจ.
- ๋ชจ๋ ๋ณด์กฐ์คํธ๋ฆผ์ ์ต๊ณ ์กฐ์์ ์คํธ๋ฆผ ์กฐ์.
InputStream
- ์ถ์ํด๋์ค
- ๊ฐ์ ํด๋์ค์ ๋ฉ์๋ ํธ์ถ = ์ฝ๋ ์ค๋ณต์ ํผํ๋ฉฐ ์ผ๊ด์ฑ ์๋ ๋์์ ์ ๊ณตํจ.
- 1byte๋ฅผ ์ฝ๋๋ค = 8bit (int 0~255)
๋ฌธ์๊ธฐ๋ฐ์คํธ๋ฆผ
- ๋ฌธ์๋ฐ์ดํฐ ์ ์ถ๋ ฅ ์ ์ฌ์ฉํจ
- ๋ฐ์ดํธ๊ธฐ๋ฐ์ ์ ์ถ๋ ฅ๋จ์ 1byte์ธ๋ฐ, ์์ด๋ฌธ์ 2byte, ASCII๋ 1byte, ํ๊ธ์(UTF-8์ 3byte, UTF-16์ 2byte)๋ก ๋ฌธ์๋ฐ์ดํฐ์ฉ ์คํธ๋ฆผ์ด ํ์ํจ
๋ฌธ์๊ธฐ๋ฐ์คํธ๋ฆผ์ ์ต๊ณ ์กฐ์
- Reader, Writter
- ๋ฌธ์๊ธฐ๋ฐ์คํธ๋ฆผ์์ ๋ฐฐ์ด์ ์ฌ์ฉํด์ ์ฝ์ด์ค๋ ์ด์ ๋ I/O์์ ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด์.
- ๋ฌธ์๊ธฐ๋ฐ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด๋ก ์ฝ์ด์ค๋ ๋ฐฉ์์ด ๋ค์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํธ์คํธ๋ฆผ์ โข๋ฒ๊ณผ ๊ฐ์ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋๊ฐ ๋จ.
InputStream์ ๋ฉ์๋ ์ผ๋ถ
- ๋ฉ๋ชจ๋ฆฌ์ฌ์ฉ ์คํธ๋ฆผ๊ณผ ํ์ค์ ์ถ๋ ฅ ๋นผ๊ณ ๋ ์คํธ๋ฆผ์ ์ฌ์ฉํด์ ๋ชจ๋ ์์ ์ ๋ง์น๊ณ ๋ ํ close( )๋ฅผ ํธ์ถํด์ ๋ฐ๋์ ๋ซ์์ฃผ์ด์ผ ํจ.
OutputStream์ ๋ฉ์๋ ์ผ๋ถ
๋ณด์กฐ์คํธ๋ฆผ์์ close( )๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
- = ๋ณด์กฐ์คํธ๋ฆผ flush( ) + ๊ธฐ๋ฐ์คํธ๋ฆผ close( )
- flush( ) : close( )๋ด๋ถ์ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ถ๋ ฅ๋์ง ์๊ณ ๋ฒํผ์๋จ์ ๋ฐ์ดํฐ๋ฅผ ๋จ๊น์์ด ๋ชจ๋ ๋ฐฉ์ถํ๋๋ฉ์๋
'๐ฅ๏ธ ๋ฐฑ์๋ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ch.15] ์ ์ถ๋ ฅ I/O - ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ (1) | 2023.11.21 |
---|---|
[ch.15] ์ ์ถ๋ ฅ I/O - ๋ฐ์ดํธ ์คํธ๋ฆผ (1) | 2023.11.21 |
[ch.14] Optional<T>์ OptionalInt (0) | 2023.11.20 |
[ch.14] ์คํธ๋ฆผ์ ์ต์ข ์ฐ์ฐ (0) | 2023.11.15 |
[ch.14] ์คํธ๋ฆผ์ ์ค๊ฐ์ฐ์ฐ (0) | 2023.11.15 |