**์ถ๋ ฅ Stream
- ํ์ผ์ถ๋ ฅ
* FileOutputStream
- ์์ฑ๊ณผ ๋์์ ํ์ผ์ด ์๋ค๋ฉด ํ์ผ์ ์์ฑํ๊ณ , ํ์ผ์ด ์๋ค๋ฉด ๋ฎ์ด์ด๋ค.
- binary๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ก ํ ์ ์๋ค. (๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ผ ์ ์๋ค)
- ์๋๊ฐ ๋น ๋ฆ
์ฌ์ฉ๋ฒ
1. ์์ฑ)
FileOutputStream fos = new FileOutputStream("ํ์ผ๊ฒฝ๋ก"); // ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด error, ํ์ผ์ด ์กด์ฌํ๋ฉด ๊ทธ๋ฅ ๋ฌป์ง๋ ์๊ณ ๋ฎ์ด์, ํ์ผ์ด ์๋ค๋ฉด ์์ฑ
2. ์คํธ๋ฆผ์ ํ์ผ๋ก ๊ธฐ๋กํ ๋ด์ฉ์ ์ด๋ค.
fos.write(๊ฐ);
3. ์คํธ๋ฆผ์ ๊ธฐ๋ก๋ ๋ด์ฉ์ ๋ชฉ์ ์ง๋ก ๋ถ์ถ
fos.flush();
4. ์คํธ๋ฆผ ๋๋๊ฒ ๋งค์ฐ ์ค์ (์คํธ๋ฆผ์ ๊ธฐ๋ก๋ ๋ด์ฉ์ ๋ชฉ์ ์ง๋ก ๋ถ์ถํ๊ณ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ค)
fos.close();
* FileWriter
- ์์ฑ๊ณผ ๋์์ ํ์ผ์ด ์๋ค๋ฉด ํ์ผ์ ์์ฑํ๊ณ , ํ์ผ์ด ์๋ค๋ฉด ๋ฎ์ด์ด๋ค.
- ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ก
- ์๋๊ฐ ๋๋ฆผ
์ฌ์ฉ๋ฒ
1. ์์ฑ)
BufferedWriter bw = new BufferedWriter(new FileWriter("ํ์ผ๊ฒฝ๋ก")); // ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด error, ํ์ผ์ด ์กด์ฌํ๋ฉด ๋ฎ์ด์, ํ์ผ์ด ์๋ค๋ฉด ์์ฑ
BufferedWriter = ์๋ ํฅ์
FileWriter = File๊ณผ ๋ถ์ธ๋ค.
2. ์คํธ๋ฆผ์ ํ์ผ๋ก ๊ธฐ๋กํ ๋ด์ฉ์ ์ด๋ค.
bw.write(๋ฌธ์์ด);
3. ์คํธ๋ฆผ์ ๊ธฐ๋ก๋ ๋ด์ฉ์ ๋ชฉ์ ์ง๋ก ๋ถ์ถ
bw.flush();
4. ์คํธ๋ฆผ ๋๊ธฐ ( ์คํธ๋ฆผ์ ๊ธฐ๋ก๋ ๋ด์ฉ์ ๋ชฉ์ ์ง๋ก ๋ถ์ถํ๊ณ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ค. )
bw.close();
์ ์ดํ๋ ์ชฝ / ์คํํ๋ ์ชฝ ๋ถ๋ฆฌํด์ ์ฝ๋ฉํ ๊ฒ. ์๋๋ฉด ์ค๋ณต์ฝ๋ ์ฌํจ
==========================
===========================
**instance ์ฐ๊ธฐ / ์ฝ๊ธฐ
- ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ Stream์ ํ๊ณ ๋๊ฐ ์ ์๋ค.
- ๊ฐ์ฒด(instance)๋ Stream์ ํ๊ณ ๋๊ฐ ์ ์๋ค. (ํฌ๊ธฐ๋ฅผ ์ ์ ์๋ค)
- ObjectOutputStream์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด๋ฅผ JVM์ธ๋ถ๋ก ๋ด๋ณด๋ผ ์ ์๋ค.
- ๊ฐ์ฒด์ง๋ ฌํ(์ผ์ ํฌ๊ธฐ๋ก ๋๋๋ ๊ฒ)๊ฐ ๋ ์ ์๋ ๊ฐ์ฒด๋ง ๋๊ฐ ์ ์๋ค. (์ผ๋ฐํด๋์ค๋ ๊ฐ์ฒด์ง๋ ฌํ๊ฐ ๋์ง ์๋๋ค.)
- transient ์ง๋ ฌํ ๋ฐฉ์ง ํค์๋.
- JVM์ด ๊ฐ์ฒด๋ฅผ ์ชผ๊ฐ๋ ค๋ฉด Implements๋ก Serializeble interface๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ง ์ชผ๊ฐค ์ ์๋ค.
- Serializeble๋ ์ค์ง ๋น๊ตํ๋ ค๋ interface (ํ์ธ์ฉ)
์ชผ๊ฐ์ง ๊ฐ์ฒด๋
ObjectOutputStream( 8bit stream )์ ํ๊ณ JVM์ธ๋ถ๋ก ๋ด๋ณด๋ธ๋ค.
FileOutputStream ์ ๋ถ์ฌ์ฃผ๋ฉด ํ์ผ์ ๋ด๋ณด๋ผ ์ ์๋ค.
FileInputStream : ํ์ผ์์ ๋ค์ ์ฝ์ด ๋ค์ด๊ธฐ.
ObjectInputStream( 8bit stream )์ ํ๊ณ ์ฝ์ด ๋ค์ด๊ธฐ.
๊ฐ์ฒด ์ง๋ ฌํ : marshal - ๊ฐ์ฒด๋ฅผ stream์ ํ๊ณ ๋๊ฐ ์ ์๋๋ก ์ชผ๊ฐ๋ ๊ฒ
์ญ ์ง๋ ฌํ : un marshal - ์ชผ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์๋๋๋ก ์กฐ๋ฆฝํ๋ ๊ฒ