์ ์ถ๋ ฅ ์คํธ๋ฆผ
์์ฉํ๋ก๊ทธ๋จ๊ณผ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์๋๋ก ์ ์ก๋๋๋ก ํ๋ค.
- ๊ธฐ๋ณธ๋จ์ : ๋ฐ์ดํธ
- ์ ์ ์ ์ถ ๋ฐฉ์ (๋จ๋ฐฉํฅ)
- java.io ํจํค์ง ํฌํจ
์ ์ถ๋ ฅ ์คํธ๋ฆผ —- ๋ฐ์ดํธ ์คํธ๋ฆผ
๋ฐ์ดํธ ๋จ์ / ๋ฐ์ด๋๋ฆฌ๋ก ๋ค๋ฃจ๊ธฐ๋๋ฌธ์ ๋ฌธ์, ์ด๋ฏธ์ง ๋ฐ์ดํธ ๋ชจ๋ ๋ค๋ฃฐ ์ ์๋ค.
- Stream
์ ์ถ๋ ฅ ์คํธ๋ฆผ —- ๋ฌธ์ ์คํธ๋ฆผ
๋ฌธ์๋ง ๋ค๋ฃฐ ์ ์๋ค.
- Reader / Writer
์คํธ๋ฆผ ์ฐ๊ฒฐ
๋ฐ์ดํธ ์คํธ๋ฆผ ↔ ๋ฌธ์ ์คํธ๋ฆผ์ ์ฐ๊ฒฐ ํ ์ ์๋ค.
- InputStreamReader rd = new InputStreamReader (System.in);
- ๋ฐ์ดํธ ์คํธ๋ฆผ : System.in ์
- ๋ฌธ์ ์คํธ๋ฆผ : rd ์ ์์ฑํ์ฌ ์ฐ๊ฒฐ
- ํค ์ ๋ ฅ ๋ฐ๊ธฐ : rd.read()
ํ ์คํธ ํ์ผ
๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋ ํ์ผ
ํ ์คํธ ํ์ผ ์ฝ๊ธฐ — FileReader ํด๋์ค
- ํ์ผ ์ ๋ ฅ ์คํธ๋ฆผ ์์ฑ (ํ์ผ์ด๊ธฐ) : FileReader fin = new FileReader(”C:\\~~”)
- ํ์ผ ์ฝ๊ธฐ : fin.read() ํจ์๋ก ๋ฌธ์ ํ๋ ์ฝ์ด ๋ฆฌํด → (EOF (ํ์ผ์ ๋ ) ๋ง๋๋ฉด -1 ๋ฆฌํดํจ)
- ํ์ผ ๋ธ๋ก ์ฝ๊ธฐ : fin.read(buf); (๋ฐฐ์ด๋ก ์ ์ธ ํ ํฌ๊ธฐ ํ๋ฒ์ ์ฝ๊ธฐ)
- ์คํธ๋ฆผ ๋ซ๊ธฐ : fin.close()
- ๊ฒฝ๋ก๋ช ํํ ์ :: \ ํ๊ฐ → \\ ๋ก ํ๊ธฐ ํ์ !
- read () ๋ฆฌํด ํ์ ์ int ๋ก ํ๋ ์ด์ ๋ :: ํ์ผ ๋ง์ง๋ง ๊ฐ 0xFF (-1) → 0xFF (-1) ๋ฆฌํด / ํ์ผ๋ง์ง๋ง์ด๋ผ -1 ๋ฆฌํด ???? ⇒ read() ๋ int ํ์ ์ผ๋ก ๋ฆฌํดํจ ์ฆ , 0xFF = 0x000000FF / -1 = 0xFFFFFFFF ์ด๋ค. (int ๋ฆฌํดํ์ ์ ํผ๋ ๋์ง ์์)
- FileReader ์์ฑ์ / FileReader ๋ฉ์๋ :: ~~
ํ ์คํธ ํ์ผ ์ฐ๊ธฐ— FileWriter ํด๋์ค
- ํ์ผ ์ถ๋ ฅ ์คํธ๋ฆผ ์์ฑ : FileWriter fout = new FileWriter(”C:\\~~”)
- ํ์ผ ์ฐ๊ธฐ : fout.write(); → ๋ฌธ์ ํ๋์ฉ ๊ธฐ๋ก
- ํ์ผ ๋ธ๋ก ์ฐ๊ธฐ : fout.write(buf, 0 , buf.length); → ๋ฐฐ์ด ์ ์ธ ํ ( buf 0 ๋ถํฐ ๋ฒํผ ํฌ๊ธฐ๋งํผ ์์ฑ)
- ์คํธ๋ฆผ ๋ซ๊ธฐ : fout.close();
- FileWriter ์์ฑ์ / FileWriter ๋ฉ์๋ :: ~~
ํ์ผ ์ ์ถ๋ ฅ / ์์ธ ์ฒ๋ฆฌ
- ํ์ผ ๊ฒฝ๋ก๋ช ํ๋ฆผ : FileNotFoundException ์์ธ
- ๋์คํฌ ์ค์๋ / ํ์ผ ๊นจ์ง : read(),write(),close() ๋ฉ์๋ → IOException ์์ธ
- IOException (์ํผ) > FileNotFoundException (์๋ธ)
๋ฐ์ดํธ ์คํธ๋ฆผ
๋ฐ์ดํธ ๋จ์์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๊ฐ ํ๋ฅด๋ ์คํธ๋ฆผ
์ด๋ฏธ์ง/ ๋์์ ํ์ผ ์ฝ๊ณ ์ธ ๋ ์ฌ์ฉํ๋ค.
FileOutPutStream / FileInputStream
๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฐ๊ธฐ —- FileOutPutStream ํด๋์ค
๋ณ์์ ์ ์ฅ๋ ๋ฐ์ด๋๋ฆฌ ๊ฐ์ด ์ ์ฅ๋ ํ์ผ์ ์ฌ๋์ด ์ฝ๊ฒ ์ฝ์ง ๋ชปํจ
- ํ์ผ ์ถ๋ ฅ ์คํธ๋ฆผ ์์ฑ : FileOutPutStream fout = new FileOutPutStream(”๊ฒฝ๋ก”)
- ํ์ผ ์ฐ๊ธฐ : fout.write(b[i]);
- ํ์ผ ํต์งธ๋ก ๊ธฐ๋ก : fout.write(b);
- FileOutPutStream ์์ฑ์ / FileOutPutStream ๋ฉ์๋ :: ~~
๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฝ๊ธฐ —- FileInputStream ํด๋์ค
- ํ์ผ ์ฝ๊ธฐ : fin.read()) ≠ -1 → b[n] = (byte)c; n++; ~
- ํ์ผ ํต์จฐ๋ก ์ฝ๊ธฐ : fin.write(b);
- FileInputStream ์์ฑ์ / FileInputStream ๋ฉ์๋ :: ~~
File ํด๋์ค
ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ์ ๋ํด ์์ฑ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ํ์ผ ๊ด๋ฆฌ ์์ ์ ์ง์ํจ
- ํ์ผ ์ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ์๊ธฐ ๋๋ฌธ์ ์์ ์ค๋ช ํ ํ์ผ ์ ์ถ๋ ฅ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผํจ
File ๊ฐ์ฒด ์์ฑ
์์ฑ์ ์ด์ฉํด์ ์์ฑ
- File f = new File (””);
- ์คํธ๋ฆผ ์์ฑ์ ์์ฑ์์ ํ์ผ ๊ฒฝ๋ก๋ช ์ ๋ฌํ๊ธฐ ์ํด ์ฐ์ FileReader fr = new FileReader(f);
- File ํด๋์ค ์์ฑ์ :: ~~
File ํด๋์ค ํ์ฉ
ํ์ผํฌ๊ธฐํ์ / ํ์ผ ์ญ์ / ์ด๋ฆ๋ณ๊ฒฝ / ๋๋ ํฐ๋ฆฌ ์์ฑ / ๋๋ ํฐ๋ฆฌ ํ์ผ ๋ฆฌ์คํธ ์ป๊ธฐ ๋ฑ ํ์ผ ๊ด๋ฆฌ ์์ ์ํ ๊ฐ๋ฅ
- File ํด๋์ค ๋ฉ์๋ ::length(),getName(),getPath(),getParent(),isFile(), isDirectory(),listFiles() ๋ฑ
๋ธ๋ก ๋จ์๋ก ํ์ผ ๊ณ ์ ๋ณต์ฌ
- BufferedInputStream , BufferedOutputStream ์ฌ์ฉ
- ๋ธ๋ก ๋จ์๋ก ์ฝ๊ณ ์ฐ๋๋ก ์์ :: fout.write(buf, 0 , buf.length);