import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
// 파일 복사하는 프로그램(test4보다 더 좋음)
public class Test8 {
public static void main(String[] args) {
//파일 복사 프로그램
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s1,s2;
int size=512,len;
byte[] b=new byte[size];
try {
System.out.print("원본파일명 ?");
s1=br.readLine();
System.out.print("복사할파일명 ?");
s2=br.readLine();
File f1=new File(s1);
if(! f1.exists()) {
System.out.println(s1+"파일이 없사옵니다");
System.exit(0);
}
File f2=new File(s2);
if(f2.exists()){
System.out.println(s2+"가 있으니까 복사 안합니다~");
System.exit(0);
}
FileInputStream fis=new FileInputStream(f1);
//test4예제 처럼 값을(Sring s1)를 직접넣어도 되고 여기서처럼 직접 경로를(File 객체 f1)집어넣어도 된다.
FileOutputStream fos=new FileOutputStream(f2);
BufferedInputStream bis=new BufferedInputStream(fis);
//1바이트씩 읽지 않고 한 번에 많은 데이터를 미리 버퍼에 읽어놓게 된다. 따라서 효율이 좋으며입력 스트림과 같은 메소드를 갖는다.
BufferedOutputStream bos=new BufferedOutputStream(fos,size);
while((len=bis.read(b))!=-1){
bos.write(b,0,len);
}
bos.flush();
bis.close();
bos.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
}
'자바 DB 연동 > 입출력 스트림' 카테고리의 다른 글
DataInputStream / DataOutputStream (0) | 2013.06.19 |
---|---|
DataOutputStream / DataInputStream (0) | 2013.06.15 |
File 클래스 - 폴더만들기, 파일정보구하기 (0) | 2013.06.14 |
flush 메소드 (0) | 2013.06.14 |
FileOutputStream / FileInputStream (0) | 2013.06.14 |