JAVA IO
JAVA IO
java์์ Scanner๋ฅผ ์จ๋ดฃ์ ๊ฒ์ด๋ค Scanner๋ ์ฌ์ฉ์๊ฐ data๋ฅผ ์ ๋ ฅํ๋ util์ค ํ๋์ด๋ค.
//Scanner
Scanner scanner = new Scanner(System.in);
์์ ๊ฐ์ด ์ฌ์ฉ ํ๋๋ฐ ์ฌ๊ธฐ์ System . in์ in์ ๋ณด๋ฉด data type๋ก inputstream์ ๋ฐ๋๋ค.
inputstream์ java I / O ํจํค์ง์ ์
๋ ฅ์ ๋ด๋นํ๋ ์ถ์ ํด๋์ค์ด๋ค.
๋ ์๋ฅผ ๋ค์ด out์ ๋ณด๋ฉด outStream์ด๋ผ๋ data type์ ๋ฐ๋๋ฐ ์ด๊ฒ ๋ํ I / O ํจํค์ง์ ์ถ๋ ฅ์ ๋ด๋นํ๋ ์ถ์ํด๋์ค์ด๋ค.
๊ฒฐ๊ตญ ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ java I / O ํจํค์ง์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
I / O ์๋ ์
๋ ฅ์ผ๋ก InputStream๊ณผ Reader๊ฐ ์์ผ๋ฉฐ ์ถ์method๋ก read()๊ฐ ์กด์ฌํ๋ค.
์ด๊ฒ์ผ๋ก ๋ณด์ InputStream๊ณผ Reader๋ฅผ ์์๋ฐ๋ ํ์ ํด๋์ค์์๋ ๋ชจ๋ read()๋ฅผ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ถ๋ ฅ์ผ๋ก OutStream ๊ณผ writer๊ฐ ์๋๋ฐ ๋ง์ฐฌ๊ฐ์ง๊ณ ์ถ์ method์ธ write()๊ฐ ์กด์ฌํ๋ค.
InputSteam๊ณผ ๊ฐ์ด ์์๋ฐ๋ ํ์ ํด๋์ค์์๋ ๋ชจ๋ ์ถ์ method write() ๊ฐ ์กด์ฌํ๋ค.
read()์ write()๋ฅผ ๊ณต์ ํ๊ณ ์๋ ๊ฒ์ ๋ณด๋ฉด InputStream๊ณผ Reader / OutStream ๊ณผ writer๋ฅผ ํฌํจํ
๋ชจ๋ ๊ฒ์ read()์ write()๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ ์ ์๋ค.
๋ฐ์ดํธ ๋จ์ ์ ์ถ๋ ฅ์ธ InputStream๊ณผ OutStream์ 1 byte(์์คํค์ฝ๋๋ก)์ data๋ฅผ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.
๋ฌธ์(char) ๋จ์ ์ ์ถ๋ ฅ์ธ Reader์ writer๋ ๋ฌธ์์ด(์ ๋์ฝ๋)๋ก data๋ฅผ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด inputStreamReader ์ outputStreamWrite๋ฅผ ์ง์ํ๋ค.
์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ๋ก ๋ฐ์ inputStreamReader ํตํด ์ ๋์ฝ๋ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ
์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ์ outputStreamWrite ํตํด ๋ฐ์ดํธ๋ก ์ถ๋ ฅํ๊ฒ ๋ณํํด์ค๋ค.
์ฝ๊ฒ ๋งํ์๋ฉด ์์ฑ์๋ฅผ ๋ณด๋ฉด ์ ์ ์๋๋ฐ stream์ byte์ ๋ฐ์ดํธ์คํธ๋ฆผ์ด๊ณ
reader or writer๊ฐ ๋ถ์ผ๋ฉด ๋ฌธ์์ด ์คํธ๋ฆผ์ด๋ค.
Stream(์คํธ๋ฆผ)
์๋ฐ์์๋ ๋ฐ์ดํฐ์ ์
์ถ๋ ฅ์ ์ง์ ๋ค๋ฃจ์ง ์๊ณ ์คํธ๋ฆผ์ด๋ผ๋ ํ๋ฆ์ ํตํด ๋ค๋ฃฌ๋ค.
์คํธ๋ฆผ์ ์ฐ์๋ ๋ฐ์ดํฐ์ ๋จ๋ฐฉํฅ ํ๋ฆ์ ์ถ์ํํ ๊ฒ์ด๋ค.
๋คํธ์ํฌ ํต์ , ์
์ถ๋ ฅ ์ฅ์น์ ์
์ถ๋ ฅ, ํ์ผ์ ์
์ถ๋ ฅ ๋ฑ์ ์ฒ๋ฆฌ์์ ๋ฐ์ํ๋
๋ฐ์ดํฐ ํ๋ฆ๋ ๋ชจ๋ ์คํธ๋ฆผ์ด๋ผ ํ ์ ์๋ค.
์
์ถ๋ ฅ ์คํธ๋ฆผ์ ์ ์
์ ์ถ ๊ตฌ์กฐ์ด๋ค. ๋ฐ๋ผ์ ์คํธ๋ฆผ ์ ๋ฐ์ดํฐ์ ์์๋ ๋ฐ๊ฟ ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํด์ ์
๋ ฅ์คํธ๋ฆผ๊ณผ ์ถ๋ ฅ์คํธ๋ฆผ์ด ๋ฐ๋ก ํ์ํฉ๋๋ค.
๋ณด์กฐ์คํธ๋ฆผ
์์ฒด์ ์ธ ์
์ถ๋ ฅ์ ํ ์ ์๊ณ ๋ง ๊ทธ๋๋ก ๋ณด์กฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ์คํธ๋ฆผ์ด๋ค.
๋ค๋ฅธ๋ง๋ก ์คํธ๋ฆผ์ ๊ฐ์ธ๊ณ ์๋ค๋ ๋ป์์ Wrapper stream์ด๋ผ๊ณ ๋ ํ๋ค.
๋ณด์กฐ์คํธ๋ฆผ์ผ๋ก ๊ธฐ๋ฅ์ ํ์ฅ ํ ์ ์๋ค.
ํ์์ ๋ฐ๋ผ API๋ฅผ ํ์ธํด๋ณด์
Buffer
Buffer๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋๋ ๊ณต๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.
5๊ฐ์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๊ฐ์ง๋ A์ B๊ฐ ์๋ค A์ 5๊ฐ์ ๋ฒํผ ๊ณต๊ฐ์ด ๊ฝ ์ฐจ๋ฉด ์๋์ผ๋ก B์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ฐ ์ด๊ฒ์
flush = AutoFlush๋ผ๊ณ ํ๋ค.
๊ผญ ๋ฐ์ดํฐ๊ฐ ๊ฝ ์ฐจ์ง ์์๋ ๊ฐ์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ค.
์ด๋ ๊ฒ ๋๋ฉด B๋ 5๊ฐ์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ด ๊ฝ์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํ ์ ์๋ค.
์ด๋ A์์ 2๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ๋ณด๋ด๊ฒ ๋๋ค๋ฉด 5๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ๋๋ค.
#์ฅ์ ์ผ๋ก ๊ฐ๋ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
Leave a comment