โถInputStream / Sytem.in.read()
ImputStream์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ์ ์๋ ์ญํ ์ ํ๋ค.
์ฌ์ฉ์ ์ ๋ ฅ์ ์์ฃผ ์ฐ์ด๋ ํด๋์ค์ธ Scanner์ ๋ค๋ฅธ ๋์์ ๋ณด์ด๋๋ฐ, ๊ฐ์ฅ ํฐ ํน์ง์ 1byte ๋จ์๋ก ์ ๋ ฅ์ ๋ฐ์์จ๋ค๋ ์ ์ด๋ค.
Sytem.in.read()์ ์ฌ์ฉ์ ์ ๋ ฅ์ ์์ ์ ์ฅํ๋ ๋ฒํผ(Buffer)์์ ์ ์ฅ๋ ๊ฐ์ ํ๋์ฉ ๊ฐ์ ธ์จ๋ค.
์ด read()์ return ๊ฐ์ byte๋จ์์ ๋ฐ์ดํฐ ํน์ -1(๋ฒํผ์ ๊ฐ์ด ์์ ๋)์ด๋ค.
โถ์์คํค์ฝ๋ ๊ฐ์ผ๋ก ์ ์ฅ
read() ๋ฉ์๋๋ก ๋ฆฌํดํ ๊ฐ์ ๋ณ์์ ์ ์ฅํ๊ฒ ๋ ํ ๋ฐ, ์ด๋ ์ฌ์ฉ์ ์ ๋ ฅ ๊ฐ์ ๋ฆฌํด ๊ฐ์ธ byte๋จ์(0~255)์ ๋ง์ถ์ด ์์คํค์ฝ๋ ๊ฐ์ ์ ์ฅํ๊ฒ ๋๋ค.
๋ณ์ a์ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฌธ์ 'a'๋ฅผ ๋ฐ์ผ๋ฉด ๋ฌธ์ 'a'์ ์์คํค์ฝ๋ ๊ฐ์ด 97์ด a ๋ณ์์ ์ ์ฅ๋๋ค.
โถ๋ฒํผ์ ๋์ (\r, \n)
์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฌธ์ 'a'๋ฅผ ๋ฐ์๋ค๊ณ ํด์ ๋ฒํผ์ 'a'๋ง ์ ์ฅ๋๋ ๊ฒ์ ์๋๋ค.
์ฌ์ฉ์ ์ ๋ ฅ์ ์๋ฃํ์ ๋, enter ํค๋ฅผ ๋๋ฅด๊ฒ ๋๋๋ฐ ๋ฒํผ์๋ ์ด enterํค๊ฐ ๊ฐ์ง๋ ๋ณต๊ท ๋ฌธ์(Carriage return, ASCII 13)์ ๊ฐํ ๋ฌธ์(Line feed, ASCII 10)๊ฐ ํจ๊ป ์ ์ฅ๋๋ค.
↓ a ์ ๋ ฅ ์์ ๋ฒํผ์ ์ํ
๋ฌธ์ | a | \r | \n |
ASCII | 97 | 13 | 10 |
์ฌ๊ธฐ์ int ๋ณ์์๋ ํ๋์ ์ ์ ๊ฐ๋ง ์ ์ฅํ ์ ์๋๋ฐ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ์ธํด ๋ฒํผ์ 3๊ฐ์ ์ ์ ๊ฐ์ด ๋ด๊ธด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ 'a'๋ฌธ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์๋ 3๊ฐ์ int ๋ณ์๊ฐ ํ์ํ ์ ์ด๋ค.
โถPrintStream / ํ๊ธ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ
read() ๋ฉ์๋๋ก 1byte์ฉ ์ ์ฅ๋ ๋ณ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ System.in.write() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
System.in.write()๋ ๋ณ์์ ์ ์ฅ๋ 1byte์ ๊ฐ์ ์ฝ์ด๋ธ๋ค.
read() ํจ์์์ 'a'๋ผ๋ ๋ฌธ์๋ ๊ฐ๊ฐ 97 / 13 / 10 ์ธ ๊ฐ์ ๊ฐ์ ํฉ์ผ๋ก ์ด๋ค์ ธ ์์์ ์ ์ ์๋ค.
๋ฐ๋๋ก write() ํจ์๋ก 'a'๋ผ๋ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ 97 / 13 / 10 ์ธ ๊ฐ์ ๊ฐ์ด ๋ชจ์ฌ์ผ ํ๋ค.
์ฌ๊ธฐ์ ์ฌ์ฉ์ ์ ๋ ฅ์ด ํ๊ธ์ด๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๋๋ฐ, ํ ์ค ์ผ์ด์ ์ ๋์ฝ๋๋ ์๋ฐ์์๋ 3byte์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ์ฉ์ ์ ๋ ฅ์ 'ใฑ'์ผ๋ก ๋ฐ์ผ๋ฉด ์ด 5๊ฐ์ ๋ณ์์ ์ ์ฅ์ด ๋๋๋ฐ ์์ ๋งํ ํ๊ธ์ด 3byte์ผ๋ก ์ด๋ค์ ธ ์๊ธฐ ๋๋ฌธ์ด๋ค.
\r๊ณผ \n ๊ฐ์ ์ ์ธํ๋ฉด ํ๊ธ 'ใฑ'์ 227 / 132 / 177์ ํฉ์ผ๋ก ์ด๋ค์ ธ ์๋ ๋ฌธ์์ด๋ค.
์์ ๊ฐ์ด ๋ค์ฏ ๊ฐ์ ๋ณ์๋ฅผ write() ํจ์๋ฅผ ์ด์ฉํด์ ์ถ๋ ฅํ๋ฉด ์ ๋ ฅ ๊ฐ 'ใฑ'์ ์ ๋๋ก ์ถ๋ ฅํ ์ ์๋ค.
โถwhile ๋ฌธ ์ฌ์ฉ
๋ณดํต์ while๋ฌธ์ ์ฌ์ฉํด์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ๊ณ ๊ฐ์ ์ถ๋ ฅํด์ค๋ค.
์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ ๋๋ง๋ค \r, \n์ด ํจ๊ป ์ ์ฅ๋๋ฏ๋ก ๋ 2byte๊ฐ ์ถ๊ฐ๋ก ์ ์ฅ๋๋ค.
์์ฒ๋ผ while๋ฌธ์ ์ด์ํด InputStream / OutStream์ ์ฌ์ฉํ ๋๋ ์๋ชป๋ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฌดํ ๋ฃจํ์ ๋น ์ง ์ํ์ด ๋๊ธฐ ๋๋ฌธ์ try / catch ๋ฌธ์ ์ด์ฉํด์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ค๋ค. (IDE์์ ์๋์ผ๋ก ์์ฑํด์ค๋ค.)
์๋ชป๋ ๋ถ๋ถ ์ง์ ์ ๋ ๊ฐ์ฌํฉ๋๋ค.
'Programming > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] XMLํ์ผ๊ณผ ์๋ฐ(Java)๋ก ํ์ฑ(parsing)ํ๊ธฐ (0) | 2021.12.29 |
---|---|
<ํ ์ด ํ๋ก์ ํธ ํ๊ณ ๋ก> ์๋ฐ ์ค์(Java Swing)์ ์ด์ฉํ GUI ํ๋ก๊ทธ๋จ(ft. DBeaver) (0) | 2021.12.29 |
์๋ฐ[Java] ์ธํฐํ์ด์ค[Interface] ์ฌ์ฉ๊ณผ ์ด์ (1) | 2021.12.29 |
์๋ฐ[Java] ์ ๊ทผ ์ ์ด์[Access modifier] (0) | 2021.12.29 |
์๋ฐ(Java) ์ฌ์ฉ์ ์ /์ถ๋ ฅ๊ณผ ๋ฒํผ(butter) (0) | 2021.12.29 |