๊ด€๋ฆฌ ๋ฉ”๋‰ด

ejyoo's ๊ฐœ๋ฐœ ๋…ธํŠธ

FileIO - ByteArrayInputStream, ByteArrayOutputStream ์ฝ์€ ์ž๋ฃŒ ๋งŒํผ ์ถœ๋ ฅํ•˜๊ธฐ ๋ณธ๋ฌธ

BackEnd/Java

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์— ์žˆ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ๋ ฅํ•˜์—ฌ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•˜๊ฒŒ ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.