출처 : http://goppa.tistory.com/entry/JAVA-FileStream%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EB%B3%B5%EC%82%AC
File Stream을 이용한 파일 복사
Buffered Stream을 이용한 파일 복사
* File 스트림보다 Buffered 스트림이 훨씬 빠른 시간에 파일 복사가 된다.
File Stream을 이용한 파일 복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * FileStream을 이용한 파일 복사 예제(한 바이트 단위) */ public class FileCopy { /* * FileCopy 프로그램의 실행 * java FileCopy 원본파일이름 목표파일이름 * 예) java FileCopy s.exe t.exe * s.exe는 같은 디렉터리 상에 존재해야 한다. */ public static void main(String[] args) throws IOException{ int i, len = 0 ; FileInputStream fis = new FileInputStream(args[ 0 ]); FileOutputStream fos = new FileOutputStream(args[ 1 ]); long psecond = System.currentTimeMillis(); while ((i=fis.read()) != - 1 ){ fos.write(i); len++; } fis.close(); fos.close(); psecond = System.currentTimeMillis() - psecond; System.out.println(len + " bytes " + psecond + " miliseconds" ); } } |
Buffered Stream을 이용한 파일 복사
* File 스트림보다 Buffered 스트림이 훨씬 빠른 시간에 파일 복사가 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * Buffered Stream을 이용한 파일 복사 예제(한 바이트 단위) * * - File 스트림보다 Buffered 스트림이 훨씬 빠른 시간에 파일 복사가 된다. * [필수] 데이터의 용량이 큰 경우 무조건 Buffered 스트림으로 변환해서 사용한다. */ public class BufferedFileCopy { /* * BufferedFileCopy 프로그램의 실행 * java BufferedFileCopy 원본파일이름 목표파일이름 * 예) java BufferedFileCopy s.exe t.exe * s.exe는 같은 디렉터리 상에 존재해야 한다. */ public static void main(String[] args) throws IOException{ int i, len = 0 ; FileInputStream fis = new FileInputStream(args[ 0 ]); FileOutputStream fos = new FileOutputStream(args[ 1 ]); BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(fos); long psecond = System.currentTimeMillis(); while ((i=bis.read()) != - 1 ){ bos.write(i); len++; } bis.close(); bos.close(); psecond = System.currentTimeMillis() - psecond; System.out.println(len + " bytes, " + psecond + " miliseconds" ); } } |