๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Java

[Java-๊ธฐ์ดˆ] ์ž๋ฐ” ์ž…์ถœ๋ ฅ (Stream)

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 2. 22.
๋ฐ˜์‘ํ˜•

โ–ถ ์ž๋ฐ” ์ž…์ถœ๋ ฅ

โ€‹

*์ŠคํŠธ๋ฆผ์ด๋ž€?

์ž๋ฐ”์—์„œ ๋ชจ๋“  ์ž…์ถœ๋ ฅ์€ ์ŠคํŠธ๋ฆผ(stream)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ž…์ถœ๋ ฅ ์žฅ์น˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์น˜์— ๋”ฐ๋ผ ์ž…์ถœ๋ ฅ ๋ถ€๋ถ„์„ ์ผ์ผ์ด ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„์„ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ํ˜ธํ™˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฐ”๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฌด๊ด€ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์ข…์˜ ๊ฐ€์ƒ ํ†ต๋กœ์ธ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณตํ•œ๋‹ค.

โ€‹

โ€‹

โ€‹

*์ž…๋ ฅ·์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

์ŠคํŠธ๋ฆผ์€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ž๋ฃŒ๊ฐ€ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†๋‹ค. ์ž…๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™์ด ์ถœ๋ ฅ ์ž๋ฃŒ์˜ ์ด๋™๊ณผ ํ•œ ์ŠคํŠธ๋ฆผ์—์„œ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ข…๋ฅ˜

์˜ˆ์‹œ

์ž…๋ ฅ ์ŠคํŠธ๋ฆผ

FileInputStream, FileReader, BufferedInputStream, BufferedReader ๋“ฑ

์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

FileOutputStream, FileWriter, BuffereOutputStream, BufferedWriter ๋“ฑ

โ€‹

โ€‹

โ€‹

*๋ฐ”์ดํŠธ ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ๊ณผ ๋ฌธ์ž ๋‹จ์œ„ ์ŠคํŠธ๋ฆผ

์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์ด stream์œผ๋กœ ๋๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ŠคํŠธ๋ฆผ์ด๊ณ , Reader๋‚˜ Writer๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์€ ๋ฌธ์ž๋ฅผ ์œ„ํ•œ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์ด๋‹ค.

์ข…๋ฅ˜

์˜ˆ์‹œ

๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ

FileInputStream, FileOutputStream, BufferedInputStream, BuffereOutputStream ๋“ฑ

๋ฌธ์ž ์ŠคํŠธ๋ฆผ

FileReader, FileWriter, BufferedReader, BufferedWriter ๋“ฑ

โ€‹

โ€‹

โ€‹

*๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ๊ณผ ๋ณด์กฐ ์ŠคํŠธ๋ฆผ

๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์€ ์ฝ์–ด ๋“ค์ผ ๊ณณ(์†Œ์Šค)์ด๋‚˜ ์จ์•ผ ํ•  ๊ณณ(๋Œ€์ƒ)์—์„œ ์ง์ ‘ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž…์ถœ๋ ฅ ๋Œ€์ƒ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์ƒ์„ฑ๋˜๋Š” ์ŠคํŠธ๋ฆผ์ด๋‹ค. ๋ฐ˜๋ฉด์— ๋ณด์กฐ ์ŠคํŠธ๋ฆผ์€ ์ง์ ‘ ์ฝ๊ณ  ์“ฐ๋Š” ๊ธฐ๋Šฅ์€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํ•ญ์ƒ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์„ ํฌํ•จํ•˜์—ฌ ์ƒ์„ฑ๋œ๋‹ค.

๋Œ€๋ถ€๋ถ„ ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์ด ์†Œ์Šค๋‚˜ ๋Œ€์ƒ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ๋ณด์กฐ ์ŠคํŠธ๋ฆผ ์ค‘์—๋„ ์ด๋ฆ„๋งŒ ๋ด์„œ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค ์œ„์ฃผ๋กœ ๊ธฐ์–ตํ•ด ๋‘๋ฉด ๋œ๋‹ค.

์ข…๋ฅ˜

์˜ˆ์‹œ

๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ

FileInputStream, FileOutputStream, FileReader, FileWriter ๋“ฑ

๋ณด์กฐ ์ŠคํŠธ๋ฆผ

InputStreamReader, OutputStreamReader, BufferedInputStream, BufferedOutputStream ๋“ฑ

โ€‹

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€