CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ ์ž…์ถœ๋ ฅ. FileInputStream, FileOutputStream ๋ฐ BufferedIn...
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ ์ž…์ถœ๋ ฅ. FileInputStream, FileOutputStream ๋ฐ BufferedInputStream ํด๋ž˜์Šค

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
"์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜ ์ˆ˜์—…์—์„œ๋Š” Java( Java I/O )์˜ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ๋Œ€ํ™”๋ฅผ ๊ณ„์†ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์—…๋„ ์•„๋‹ˆ๊ณ  ํ™•์‹คํžˆ ๋งˆ์ง€๋ง‰๋„ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค Java์˜ ์ž…์ถœ๋ ฅ.  FileInputStream, FileOutputStream ๋ฐ BufferedInputStream ํด๋ž˜์Šค - 1:) ์ž๋ฐ” ์–ธ์–ด๋Š” I/O๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ๋ถ€ํ„ฐ ํ˜ผ๋™ํ•˜์ง€ ์•Š๋„๋ก ์—ฌ๋Ÿฌ ๋ ˆ์Šจ์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์Šต๋‹ˆ๋‹ค. :) ์ˆ˜์—…์—์„œ ์šฐ๋ฆฌ๋Š” BufferedReader, ๋ฐ ์ถ”์ƒ ํด๋ž˜์Šค์™€ ์—ฌ๋Ÿฌ ํ•˜์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค . ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” , , ์˜โ€ฏ ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค InputStream๋ฅผ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค . OutputStreamFileInputStreamโ€ฏFileOutputStreamBufferedInputStream

FileOutputStream ํด๋ž˜์Šค

ํด๋ž˜์Šค ์˜ ์ฃผ์š” ๋ชฉ์ ์€ FileOutputStreamํŒŒ์ผ์— ๋ฐ”์ดํŠธ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค :)๋Š” ์ถ”์ƒ ํด๋ž˜์Šค FileOutputStream์˜ ๊ตฌํ˜„ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค OutputStream. ์ƒ์„ฑ์ž์—์„œ ์ด ํด๋ž˜์Šค์˜ ๊ฐœ์ฒด๋Š” ๋Œ€์ƒ ํŒŒ์ผ(๋ฐ”์ดํŠธ๋ฅผ ๊ธฐ๋กํ•ด์•ผ ํ•˜๋Š” ์œ„์น˜) ๋˜๋Š” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค File. ๊ฐ๊ฐ์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

public class Main { 

   public static void main(String[] args) throws IOException { 

       File file = new File("C:\\Users\\Username\\Desktop\\test.txt"); 
       FileOutputStream fileOutputStream = new FileOutputStream(file); 

       String greetings = "Hi! Welcome to CodeGym โ€” The best site for would-be programmers!"; 

       fileOutputStream.write(greetings.getBytes()); 
       fileOutputStream.close(); 
   } 
}
๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ File์›ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑ์ž์— ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๊ฒฝ๋กœ์™€ ํ•จ๊ป˜ ๋ฌธ์ž์—ด์„ ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

public class Main { 

    public static void main(String[] args) throws IOException { 

       FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\Username\\Desktop\\test.txt"); 
       String greetings = "Hi! Welcome to CodeGym โ€” The best site for would-be programmers!"; 

       fileOutputStream.write(greetings.getBytes()); 
       fileOutputStream.close(); 
   } 
} 
๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.โ€ฏํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ค์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Hi! Welcome to CodeGym โ€” The best site for would-be programmers!
๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์—๋Š” ํ•œ ๊ฐ€์ง€ ๋‰˜์•™์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์ œ์˜ ์ฝ”๋“œ๋ฅผ ์—ฐ์†์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒŒ์ผ์„ ๋ณด๊ณ  ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค. ํŒŒ์ผ์— ๋ช‡ ์ค„์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋”ฑ ํ•˜๋‚˜๋งŒ. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฐ์ดํ„ฐ๋Š” ์ƒˆ ๋ฐ์ดํ„ฐ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ธ์‚ฌ๋ง์„ ํŒŒ์ผ์— ์—ฐ์†์œผ๋กœ ์„ธ ๋ฒˆ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ๋ชจ๋‘ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด๋Š” ๊ฐ ๊ฒฝ์šฐ์— ์–ด๋–ค ํ–‰๋™์ด ํ•„์š”ํ•œ์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— FileOutputStream๊ตฌ์„ฑ์ž๋Š” ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.boolean append. ๊ฐ’์ด true์ด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ํŒŒ์ผ ๋์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. false์ด๋ฉด(๊ธฐ๋ณธ๊ฐ’์€ false์ž„) ์ด์ „ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์ง€์›Œ์ง€๊ณ  ์ƒˆ ๋ฐ์ดํ„ฐ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ ์„ธ ๋ฒˆ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

public class Main { 

   public static void main(String[] args) throws IOException { 

       FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\Username\\Desktop\\test.txt", true); 
       String greetings = "Hi! Welcome to CodeGym โ€” The best site for would-be programmers!\r\n"; 

       fileOutputStream.write(greetings.getBytes()); 
       fileOutputStream.close(); 
   } 
} 
ํŒŒ์ผ ๋‚ด์šฉ:

Hi! Welcome to CodeGym โ€” The best site for would-be programmers! 
Hi! Welcome to CodeGym โ€” The best site for would-be programmers! 
Hi! Welcome to CodeGym โ€” The best site for would-be programmers!
์ด์ œ ๋‹ค๋ฆ…๋‹ˆ๋‹ค! I/O ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด ๊ธฐ๋Šฅ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚ด ๋ฐ์ดํ„ฐ๊ฐ€ ํŒŒ์ผ์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ๋ผ์ง€๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๊ณ  ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๋จธ๋ฆฌ๋ฅผ ์ฅ์–ด์งœ๊ณ  ์ž‘์—…์— ๋ช‡ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋˜ ๋•Œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค :) ๋ฌผ๋ก  ๋‹ค๋ฅธ I/O ์ˆ˜์—…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ close()๋งˆ์„ธ์š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

FileInputStream ํด๋ž˜์Šค

์—๋Š” FileInputStreamํŒŒ์ผ์—์„œ ๋ฐ”์ดํŠธ๋ฅผ ์ฝ๋Š” ๋ฐ˜๋Œ€ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. FileOutputStream์ƒ์† ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ OutputStream์ด ํด๋ž˜์Šค๋Š” InputStream์ถ”์ƒ ํด๋ž˜์Šค์—์„œ ํŒŒ์ƒ๋ฉ๋‹ˆ๋‹ค. " test.txt " ํŒŒ์ผ ์— ๋ช‡ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค .

"So close no matter how far 
Couldn't be much more from the heart 
Forever trusting who we are 
And nothing else matters"
Java์˜ ์ž…์ถœ๋ ฅ.  FileInputStream, FileOutputStream ๋ฐ BufferedInputStream ํด๋ž˜์Šค - 2๋‹ค์Œ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค FileInputStream.

public class Main { 

   public static void main(String[] args) throws IOException { 

       FileInputStream fileInputStream = new FileInputStream("C:\\Users\\Username\\Desktop\\test.txt"); 

       int i; 

       while((i=fileInputStream.read())!= -1){ 

           System.out.print((char)i); 

       } 
   } 
}
ํŒŒ์ผ์—์„œ ํ•œ ๋ฐ”์ดํŠธ๋ฅผ ์ฝ๊ณ  ์ฝ์€ ๋ฐ”์ดํŠธ๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฝ˜์†”์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ฝ˜์†” ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

So close no matter how far 
Couldn't be much more from the heart 
Forever trusting who we are 
And nothing else matters

BufferedInputStream ํด๋ž˜์Šค

์ง€๋‚œ ์ˆ˜์—…์—์„œ ์–ป์€ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ํด๋ž˜์Šค๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  BufferedInputStream์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์–ด๋–ค ์ด์ ์ด ์žˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค FileInputStream:) ๋ฒ„ํผ๋ง๋œ ์ŠคํŠธ๋ฆผ์„ ์ด๋ฏธ ์ ‘ํ–ˆ์œผ๋ฏ€๋กœ ๊ณ„์† ์ฝ๊ธฐ ์ „์— ์ถ”์ธก(๋˜๋Š” ๊ธฐ์–ต)ํ•ด ๋ณด์‹ญ์‹œ์˜ค :) ๋ฒ„ํผ๋ง๋œ ์ŠคํŠธ๋ฆผ์€ ์ฃผ๋กœ I/O๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์—์„œ ์ฝ๊ธฐ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ด๋ฉฐ ๊ฐ ๋ฐ”์ดํŠธ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์€ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— BufferedInputStreamํ•œ ๋ฒˆ์— ํ•œ ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์ž„์‹œ๋กœ ํŠน์ˆ˜ ๋ฒ„ํผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ค„์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋ด…์‹œ๋‹ค:

public class Main { 

   public static void main(String[] args) throws IOException { 

       FileInputStream fileInputStream = new FileInputStream("C:\\Users\\Username\\Desktop\\test.txt"); 

       BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream, 200); 

       int i; 

       while((i = bufferedInputStream.read())!= -1){ 

           System.out.print((char)i); 
       } 
   } 
} 
์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” BufferedInputStream๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ƒ์„ฑ์ž๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค InputStream๋‚˜ ๊ทธ ์ž์† ์ค‘ ํ•˜๋‚˜๋ฅผ ์ทจํ•˜๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ FileInputStreamํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ธ์ˆ˜๋กœ ๋ฒ„ํผ ํฌ๊ธฐ(๋ฐ”์ดํŠธ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธ์ˆ˜ ๋•๋ถ„์— ํŒŒ์ผ์—์„œ ํ•œ ๋ฒˆ์— ํ•œ ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•œ ๋ฒˆ์— 200๋ฐ”์ดํŠธ์”ฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ํŒŒ์ผ ์•ก์„ธ์Šค ํšŸ์ˆ˜๋ฅผ ์–ผ๋งˆ๋‚˜ ์ค„์˜€๋Š”์ง€ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๋ ค๋ฉด ํฐ ํ…์ŠคํŠธ ํŒŒ์ผ(๋ช‡ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ์˜ ํ…์ŠคํŠธ)์„ ๊ฐ€์ ธ์™€ FileInputStream๋ฐ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ๊ณ  ์ฝ˜์†”์— ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค BufferedInputStream. ๋‹ค์Œ์€ ๋‘ ์˜ต์…˜์„ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

public class Main { 

   public static void main(String[] args) throws IOException { 

       Date date = new Date(); 

       FileInputStream fileInputStream = new FileInputStream("C:\\Users\\Username\\Desktop\\textBook.rtf"); 
       BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); 

       int i; 
       while((i = bufferedInputStream.read())!= -1){ 

           System.out.print((char)i); 
       } 

       Date date1 = new Date(); 
       System.out.println((date1.getTime() - date.getTime())); 
   } 
} 

 
public class Main { 

   public static void main(String[] args) throws IOException { 

       Date date = new Date(); 
       FileInputStream fileInputStream = new FileInputStream("C:\\Users\\Username\\Desktop\\26951280.rtf"); 

       int i; 
       while((i = fileInputStream.read())!= -1){ 

           System.out.print((char)i); 
       } 


       Date date1 = new Date(); 
       System.out.println((date1.getTime() - date.getTime())); 
   }
}
๋‚ด ์ปดํ“จํ„ฐ์—์„œ 1.5MB ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ FileInputStream~3500๋ฐ€๋ฆฌ์ดˆ ์•ˆ์— ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์ง€๋งŒ BufferedInputStream~1700๋ฐ€๋ฆฌ์ดˆ ๋งŒ์— ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์‹œ๋‹ค์‹œํ”ผ ๋ฒ„ํผ๋ง๋œ ์ŠคํŠธ๋ฆผ์€ ์ž‘์—…์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค! :) I/O ์ˆ˜์—…์€ ๊ณ„์† ๊ณต๋ถ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณง ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค!
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION