"์๋ ํ์ธ์, ์๋ฏธ๊ณ ! ์ด์ InputStream ๊ณผ OutputStream ์ด๋ผ๋ ๋ ๊ฐ์ง ์ธํฐํ์ด์ค์ ๋ํด ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค . ๊ทธ๊ฒ๋ค์ ์ถ์ ํด๋์ค๋ก ์ ์ธ๋์ง๋ง ์์ธํ ์ดํด๋ณด๋ฉด ๋ณธ์ง์ ์ผ๋ก ์ธํฐํ์ด์ค๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค . ๊ฑฐ์ ๋ชจ๋ ๋ฉ์๋๋ ์ถ์์ ๋๋ค. ์์ธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ช ๊ฐ์ง ์ค์ํ์ง ์์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด์ ์ ๊ณ ๋ คํ " ๊ฒฝํธ์ " ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค ."
์ด๋ค์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ์ธํฐํ์ด์ค์ ๋๋ค. ์ง๊ธ์ ์๋์ ์ผ๋ก ๊ทธ๊ฒ๋ค์ ์ธํฐํ์ด์ค ๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค . ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ๋ค์ด ํ์ํ์ง ์ดํดํ์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ค์ด ์ค์ ๋ก ์ถ์ ํด๋์ค์ธ ์ด์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
"์ข์์. ๊ทธ๋ ๋ค๋ฉด ์ด ์ธํฐํ์ด์ค๋ ๋ฌด์์ ๋๊น?"
"๋ ๊ณ ๋ฏผํ์ง ์๊ณ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค."
Java์๋ ยซ ์คํธ๋ฆผ ยป์ด๋ผ๋ ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์คํธ๋ฆผ์ ๋งค์ฐ ๋จ์ํ ์ํฐํฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋จ์์ฑ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ํต์ฌ์ ๋๋ค. ์คํธ๋ฆผ์๋ ์ฝ๊ธฐ์ฉ ์คํธ๋ฆผ๊ณผ ์ฐ๊ธฐ์ฉ ์คํธ๋ฆผ ์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค .
์ด๋ฏธ ์ง์ํ์ จ๊ฒ ์ง๋ง ์ฐ๊ธฐ๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ ์ ์ธ ์ ์์ต๋๋ค . ์ด๋ฅผ ์ํ ์ฐ๊ธฐ ๋ฐฉ๋ฒ ์ด ์์ต๋๋ค . ์ฝ๊ธฐ ์ํด ์คํธ๋ฆผ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค . ์ด๋ฅผ ์ํ read () ๋ฉ์๋ ๊ฐ ์์ต๋๋ค .
InputStream ์ ์ฝ๊ธฐ๋ฅผ ์ง์ํ๋ ์คํธ๋ฆผ์ ์ธํฐํ์ด์ค์ ๋๋ค. ๊ทธ๊ฒ์ ๋ค์ ๋ฅ๋ ฅ์ ์ ์ํฉ๋๋ค: ยซ๋์๊ฒ์ ๋ฐ์ดํธ๋ฅผ ์ฝ์ ์ ์์ต๋๋คยป.
๋ง์ฐฌ๊ฐ์ง๋ก OutputStream ์ ์ฐ๊ธฐ๋ฅผ ์ง์ํ๋ ์คํธ๋ฆผ์ ์ธํฐํ์ด์ค์ ๋๋ค. ๊ทธ๊ฒ์ ๋ค์ ๋ฅ๋ ฅ์ ์ ์ํฉ๋๋ค: ยซbytes can be write to meยป.
"๊ทธ๊ฒ ๋ค์ผ?"
"๋๋จํ ๊ทธ๋ ์ต๋๋ค. ํ์ง๋ง ์์ ์ Java์ InputStream ๋ฐ OutputStream ๊ณผ ํจ๊ป ์๋ํ ์ ์๋ ๋ง์ ํด๋์ค ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋์คํฌ์์ ํ์ผ์ ์ฝ๊ณ ๊ทธ ๋ด์ฉ์ ํ๋ฉด์ ํ์ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ณด๋ค ๋ ์ฌ์ธ ์๋ ์์ต๋๋ค."
๋์คํฌ์ ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ ์ํด InputStream ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํน์ FileInputStream ํด๋์ค๊ฐ ์์ต๋๋ค . ์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํ์ผ์ ์ฐ์๊ฒ ์ต๋๊น? ์ด๋ฅผ ์ํด OutputStream ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ FileOutputStream ํด๋์ค๊ฐ ์์ต๋๋ค . ๋ค์ ์ฝ๋๋ ํ ํ์ผ์์ ๋ค๋ฅธ ํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ธฐ ์ํด ์ํํด์ผ ํ๋ ์์ ์ ๋ณด์ฌ์ค๋๋ค.
public static void main(String[] args) throws IOException
{
InputStream inStream = new FileInputStream("c:/source.txt");
OutputStream outStream = new FileOutputStream("c:/result.txt");
while (inStream.available() > 0)
{
int data = inStream.read(); //read one byte from the input stream
outStream.write(data); //write that byte to the other stream.
}
inStream.close(); //close the streams
outStream.close();
}
ํด๋์ค๋ฅผ ์์ฑํ๊ณ ์ฌ๊ธฐ์ InputStream ๋ฐ OutputStream ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค.
์ด๋ฌํ ์ธํฐํ์ด์ค๋ฅผ ์ ๋๋ก ๊ตฌํํ๋ค๋ฉด ์ด์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ํ์ผ์ ์ ์ฅํ๊ฑฐ๋ ํ์ผ์์ ์ฝ์ ์ ์์ต๋๋ค. read ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ด์ฉ์ ์ฝ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค . ๋๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ write ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๋ด์ฉ์ ์์ฑํ์ฌ ํ์ผ์์ ๋ก๋ํ ์ ์์ต๋๋ค.
"์๋ฅผ ๋ค์ด?"
"ํ์ ํ๋."
์ํธ | ์ค๋ช |
---|---|
|
๊ฐ๋จํ ํ๊ธฐ ์ํด ์ฐ๋ฆฌ ํด๋์ค์ ์ ์๋ฅผ ํฌํจํ๋ ArrayList๋ผ๋ ํ๋์ ๊ฐ์ฒด๊ฐ ํฌํจ๋์ด ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. |
์ด์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๋ฉ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ํธ | ์ค๋ช |
---|---|
|
์ด์ ์ฐ๋ฆฌ ํด๋์ค๋ list ์ ์ ์ฒด ๋ด์ฉ์ ์์ฐจ์ ์ผ๋ก ์ฝ์ ์ ์๋๋ก ํ๋ read ๋ฉ์๋๋ฅผ ๊ตฌํํฉ๋๋ค .
๊ทธ๋ฆฌ๊ณ ๋ชฉ๋ก์ ๊ฐ์ ์ธ ์ ์๋ write ๋ฉ์๋๊ฐ ์์ต๋๋ค. |
๋ฌผ๋ก ์ด๊ฒ์ InputStream ๋ฐ OutputStream ์ธํฐํ์ด์ค์ ๊ตฌํ์ ์๋์ง๋ง ๋งค์ฐ ์ ์ฌํฉ๋๋ค.
"์, ์๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ๋ฌํ ๊ฐ์ฒด์ ๋ด์ฉ์ ํ์ผ์ ์ด๋ป๊ฒ ์ ์ฅํฉ๋๊น?"
"์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค."
public static void main(String[] args)
{
MyClass myObject = new MyClass();
OutputStream outStream = new FileOutputStream ("c:/my-object-data.txt");
while (myObject.available() > 0)
{
int data = myObject.read(); //read one int from the input stream
outStream.write(data); //write that int to the other stream.
}
outStream.close();
}
public static void main(String[] args)
{
InputStream inStream = new FileInputStream("c:/my-object-data.txt");
MyClass myObject = new MyClass();
while (inStream.available() > 0)
{
int data = inStream.read(); //read one int from the input stream
myObject.write(data); //write that int to the other stream.
}
inStream.close(); //close the streams
}
"์ด๋ฐ ๋ชฐ๋ฆฌ! ์ ๋ง InputStream/OutputStream์ผ๋ก ์์ ํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์คํธ๋ฆผ์ด ํ๋ฅญํฉ๋๋ค!"
"๋ค์ ๋ช ๊ฐ์ง!"
GO TO FULL VERSION