์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ๋ช ์์ ์ธ๋ํค
- ๋์ ๋ณธ์์์
- Request
- scanner
- minimalAPI
- extraParams
- dbContext
- lazy loading
- extjs
- Store
- ViewModel
- React
- Config
- error
- .net
- JSON
- JavaScript
- c#
- ์์ค๊ฐ๋ ์ค๋
- EFCore
- LINQ
- mac
- intellij
- c#์ฝ๋ฉ์๊ธฐ์ ์ค์ ํธ
- ๋ผ๋๋ฌด์คdvd
- ์ฝ๋ํ๋ก๊ทธ๋๋จธ์ค
- ์์
- ์ค๋ ์์ฐ์
- ORM
- vscode
- Today
- Total
ejyoo's ๊ฐ๋ฐ ๋ ธํธ
FileIO - ByteArrayInputStream, ByteArrayOutputStream ์ฝ์ ์๋ฃ ๋งํผ ์ถ๋ ฅํ๊ธฐ ๋ณธ๋ฌธ
FileIO - ByteArrayInputStream, ByteArrayOutputStream ์ฝ์ ์๋ฃ ๋งํผ ์ถ๋ ฅํ๊ธฐ
ejyoovV 2021. 3. 22. 20:44๐ก byte ๋ฐฐ์ด์ ์ง์ ํ ๊ธธ์ด๋งํผ ์ฝ์ด์ค๊ธฐ
byte ๋ฐฐ์ด์ ์ง์ ํ ๊ธธ์ด๋งํผ ์ฝ์ด์ค๋ ์์ ์ ๋๋ค.
๋จผ์ byte ๋ฐฐ์ด๊ณผ ๋ณต์ฌํ์ฌ ์ ์ฅํ byte ๋ฐฐ์ด ์ด 2๊ฐ๋ฅผ ์์ฑํฉ๋๋ค.
๐ก ์๋ฃ๋ฅผ ์ฝ์ ๋ ์ฌ์ฉํ ๋ฐฐ์ด์ ์์ฑํ๋ค.(์ฝ์ ์ ๊ธธ์ด ์ ํ)
๐ก ํ์ผ ์ฝ๊ธฐ, ์ฐ๊ธฐ ํ ByteArrayInputStream, ByteArrayOutputStream๋ฅผ ์์ฑํ๋ค.
๐ก Byte ๋ฐฐ์ด์ ์ฝ๋๋ค.
์ฝ์ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ๊น์ง ๋ฌดํ๋ฐ๋ณตํ์ฌ ์ฝ์ ๋ค outSrc์ ๋ณต์ฌํฉ๋๋ค.
available() ์ ์ฝ์ด์ฌ ์ ์๋ byte ์๋ฅผ ๋ฐํํฉ๋๋ค.
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ
Byte๋ฐฐ์ด์ธ inSrc๋ฅผ ๋ด์ ByteArrayInputStream ์ ์ฝ์ด์ฌ ์ ์๋ Byte์๊ฐ 0๋ณด๋ค ํฐ์ง ํ์ธํฉ๋๋ค.
์ฝ์ด์ฌ ์ ์๋ Byte๊ฐ ์กด์ฌํ๋ฉด
ByteArrayInputStream ๋ด ์กด์ฌํ๋ read() ๋ฉ์๋์ temp๋ฅผ ๋ด์ temp ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
์ด๊ฒ์ ์ถ๋ ฅํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
4์๋ฆฌ ์ฉ ์ ๊ฐ์ ธ์ค๋ค๊ฐ ๋ง์ง๋ง์ 6,7์ด ๋ณด์ ๋๋ค.
์ด๊ฒ์ ์ ๊ฐ ์๋ํ ๊ฒ์ด ์๋๋๋ค.
readํ ๋, ๊ธฐ์กด์ ์๋ ๋ฐ์ดํฐ์์ ๋ฎ์ด์ฐ๊ธฐ ๋์ด ๋ฐ์ํ ์ํฉ์ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ค์ ์ฝ์ด์จ byte์๋ฅผ ๊ฐ์ง๊ณ read()๋ฅผ ํ๋๊ฒ์ ๋๋ค.
๐ ์ค์ ์ฝ์ด์จ byte ์๋ฅผ ๋ฐํํ ํ ByteArrayOutputStream์ ๋ด๊ธฐ
bais.read(temp)๋ฅผ ํ๋ฉด ์ด ๋ฉ์๋์ ๋ฐํ๊ฐ์ ์ค์ ์ฝ์ด์จ byte ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฐ๋ผ์ inSrc๋ฅผ ์ฝ์ด์ค๋ฉด 4์๋ฆฌ 4์๋ฆฌ 2์๋ฆฌ ์ฝ์ด์์ ์ด 10์๋ฆฌ๋ฅผ ์ฝ์ด์ค๊ฒ ๋ฉ๋๋ค.
๊ทธ ์ดํ ByteArrayOutputStream์ writeํ ๋, ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉด
inSrc์ ์๋ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ๋ฉ๋๋ค.
์ถ๋ ฅํ์ฌ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
์ ํํ๊ฒ ์ถ๋ ฅ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.