JAVA

[Java] ํŒŒ์ผ ์ž…์ถœ๋ ฅ

jjingle 2024. 1. 9. 13:24

ํŒŒ์ผ์ฒ˜๋ฆฌ ?

- ํŒŒ์ผ์— ๋Œ€ํ•ด ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ํŽธ์ง‘ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
- ํŒŒ์ผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํด๋ž˜์Šค๋Š” java.io ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฏ€๋กœ, ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•ด์•ผ ํ•จ
- ํŒŒ์ผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผ(Stream)์ด ํ•„์š”

 

 

ํŒŒ์ผ ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ

  • ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋™์•ˆ ๋ฐ์ดํ„ฐ(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ)๋ฅผ ๋ณด์กดํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต
  • ๋กœ๊ทธ ๊ด€๋ฆฌ : ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•จ์œผ๋กœ์จ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋””๋ฒ„๊น… ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ
  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ : ์„œ๋ฒ„ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ์›๊ฒฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ๋“ฑ์— ์œ ์šฉ

 

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

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ŠคํŠธ๋ฆผ์ด๋ž€ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์˜๋ฏธํ•จ
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ(byte stream)๊ณผ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ(character stream)์œผ๋กœ ๊ตฌ๋ถ„ํ•จ

 

๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ(byte stream)

  • ์ด๋ฏธ์ง€, ์˜์ƒ, ์Œ์„ฑ ๋“ฑ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ(์ด์ง„) ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— 1Byte ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ์ฃผ๋กœ Byte ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ์— ์œ ์šฉ
  • ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” FileInputStream, ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” FileOutputStream๊ฐ€ ์žˆ์Œ

 

 

๋ฌธ์ž ์ŠคํŠธ๋ฆผ(character stream)

  • ๋‹ค๊ตญ์–ด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— 2Byte ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ๋ณด๋‹ค 2๋ฐฐ ๋น ๋ฅธ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฝ๊ธฐ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” FileReader, ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” FileWriter๊ฐ€ ์žˆ์Œ

 

ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ณผ์ •

  1. File ํด๋ž˜์Šค๋กœ ํŒŒ์ผ ์—ด๊ธฐ(์ƒ์„ฑ)
    • File ํด๋ž˜์Šค๋กœ ํŠน์ • ๊ฒฝ๋กœ์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ์—ด๊ธฐ
    • File ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ
  2. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋กœ ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ
    • ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋กœ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ฝ๊ฑฐ๋‚˜ ์”€
    • ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ
  3. ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋‹ซ๊ธฐ(์ข…๋ฃŒ)
    • ํŒŒ์ผ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์ž‘์—…์„ ์™„๋ฃŒ
    • ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ close() ๋ฉ”์„œ๋“œ๋กœ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…์„ ์ข…๋ฃŒ