JAVA#20 _ ํ์ผ ์ ์ถ๋ ฅ๊ณผ ์ค๋ ๋
#1. ํ์ผ ์ ์ถ๋ ฅ(๊ธ)
: ํ์ผ ์ ๋ ฅ → ์ปดํจํฐ์ ์ ์ฅ๋์ด์๋ค ํ์ผ์ ๋ด์ฉ์ ์ฝ๋๋ก ๋ถ๋ฌ์ค๋ ๊ฒ → Read ์ฝ๊ธฐ ๋ชจ๋
: ํ์ผ ์ถ๋ ฅ → ์ฝ๋์ ๋ด์ฉ์ ์ปดํจํฐ๋ก ๋ด๋ณด๋ด๋ ๊ฒ(์ปดํจํฐ์ ์ ์ฅํ๋ ๊ฒ) → Writer ์ฐ๊ธฐ ๋ชจ๋
#1-1. ํ์ผ ์ ์ฅ
: ์๋์ ๊ฐ์ด ๊ฒฝ๋ก๋ฅผ ์ง์ ์ง์ ํ์ฌ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๊ฒฝ๋ก๋ฅผ ์ค์ ํ์ง ์๋๋ค๋ฉด ํด๋น package์์ ์ ์ฅ
String path = ํ์ผ์์น; // ํ์ผ์ ์ด๋์ ์ ์ฅํ ์ง
String fileName = "ํ์ผ์ด๋ฆ.txt"; // ํ์ผ ์ด๋ฆ์ ์ด๋ค๊ฑธ๋ก ํ ์ง
String msg = "๋ด์ฉ"; // ํ์ผ์ ์ ์ฅํ ๋ด์ฉ, ๋์ด์ฐ๊ธฐ๋ฅผ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ \n์ ์ฌ์ฉ
: ํ์ผ์ ์ ์ฅํ๋ ๊ฒฝ์ฐ
FileWrite ๋ณ์๋ช .close(); ํ์ฌ ์ฌ์ฉ์ ์ข ๋ฃํ์ฌ์ผ ๋ด์ฉ์ด ์ ์ฅ๋จ
#1-2. ํ์ผ ์ฝ๊ธฐ
: ์ 1-1์ ํ์ผ ์ ์ฅ๊ณผ ๋ฌ๋ฆฌ, ํ์ผ์ด ์ ์ฅ๋ ๊ฒฝ๋ก๋ฅผ ์๋ ค์ค์ผ ํ์ผ์ ์ฝ์ ์ ์์
: ํ์ผ ์ ์ฅ๊ณผ ๋ค๋ฅด๊ฒ ๋ฒํผ ๊ณต๊ฐ์ Reader๋ก ์ด์ด์ค์ผ ํจ
// ํ์ผ ์ฝ๊ธฐ
String msg = Reader๋ช
.readLine(); >> ํ์ค์ฉ ์ฝ์ด๋ค์ด๊ธฐ
if(msg==null){ >> ๋ง์ฝ ๋ค์ ๊ณต๊ฐ์ด ๋น ๊ณต๊ฐ์ด๋ผ๋ฉด ์ข
๋ฃ
break;
}
#2. ํ์ผ ์ ์ถ๋ ฅ(๊ทธ๋ฆผ jpg.pdf ํ์ผ)
: ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ฌ, ๊ฒฝ๋ก์ ํ์ผ๋ช ์ ๋ถ๋ฆฌํด์ ์์ฑ
String img = ๊ฒฝ๋ก/ํ์ผ์ด๋ฆ.jpg;
String destination = ๊ฒฝ๋ก/ํ์ผ์ด๋ฆ-๋ณต์ฌ๋ณธ.jpg;
FileInputStream์ ์ ์ธํ์ฌ img์์ ๋ฐ๊ฒฌํ ๊ฐ์ฒด๋ฅผ ์ฝ์ด๋ค์
FileOutputStream์ ์ ์ธํ์ฌ destination์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ์์ฑ
๊ทธ๋ฆผ์ ํ์คํ์ค ์ฝ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ while๋ฌธ์ ์ฌ์ฉ
์ฝ๋ ๋จ์๋ก ์ฝ์ด์ค๊ธฐ ๋๋ฌธ์ int๋ก ๋ณ์๋ฅผ ๋ง๋ค๊ณ , FileInputStream์ ์ฌ์ฉํ์ฌ ์ฝ์ด์ด
EOF, ์ฆ ํ์ผ์ด ๋๋๋ ๊ฒฝ์ฐ๋ฅผ ์๊ธฐ ์ํด
if(int์ ๋ณ์๋ช = -1)์ ์ ์ธํ์ฌ ํ์ผ์ ๋์ ํ์ธ (-1๊ณผ EOF๋ ๊ฐ์ ๋ป)
FileOutputStream ๋ํ ๋ณ์๋ช .close();ํ์ฌ ์ข ๋ฃ
#3. ์ค๋ ๋(Thread)
: ํ๋ก์ธ์ค์์ ์ค์ ๋ก ์ผํ๊ณ ์๋ ๊ฒ๋ค == ์ค๋ ๋
#3-1. ์ค๋ ๋ ๊ตฌํ ๋ฐฉ๋ฒ 1
: ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ Thread ํด๋์ค๋ฅผ "์์" ๋ฐ์์ค๊ธฐ
class TestThread extends Thread{
// ์ค๋ฒ๋ผ์ด๋ฉ
void run(){
}
}
#3-2. ์ค๋ ๋ ๊ตฌํ ๋ฐฉ๋ฒ 2
: ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ
: ์ธํฐํ์ด์ค๋ ๊ทธ๋ฅ ๊ตฌํํ๋ ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์ค๋ ๋๋ ์๋
class MyThread implements Runnable{
// ์ค๋ฒ๋ผ์ด๋ฉ
void run(){
}
}
: ์ 1๋ฒ ๋ฐฉ๋ฒ๊ณผ ๋น๊ตํ ๋, ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์ฝ๋๋ฅผ ์ ์ผ๋ฉด ๋ฐ๋ก ์ค๋ฅ ๋ฐ์
#3-3. 1๋ฒ ๋ฐฉ๋ฒ ์ค๋ ๋ ์คํ
TestThread tt = new TestThread(); → ํ๋ก๊ทธ๋จ ์ค์น
tt.start(); → ๋๋ธ ํด๋ฆญ์ผ๋ก ์คํํ๋ ๊ฒ, ์ค์ง์ ์ผ๋ก 1๋ฒ ๋ฐฉ๋ฒ์ ์์ฑํ run๊ณผ ๊ด๊ณ๊ฐ ์์
#3-4. 2๋ฒ ๋ฐฉ๋ฒ ์ค๋ ๋ ์คํ
: ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์ด์ ๋ง์ผ๋ก๋ ์ค๋ ๋๊ฐ ๋ ์ ์์
: ์ง์ง ์ค๋ ๋์ ๋ด๊ฐ ๋ง๋ ์ค๋ ๋๋ฅผ ๋ฃ์ด์ ์์ฑ์ ํด์ค์ผ ํจ
MyThread mt = new MyThread(); → ์ธํฐํ์ด์ค๋ก ๊ตฌํํ ์ค๋ ๋ ์ ์ธ
Thread t = new Thread(mt); → ์ง์ง ์ค๋ ๋์ ์ ์์ฑํ MyThread๋ฅผ ๋์ ํด์ผ ํจ(์ธ์ ์ญํ )
t.start();