이번 시간에는 자바에서 FileInputStream / FileOutputStream 을 활용하여
원본 파일 이미지를 복사해서 복사 이미지 파일을 생성하는 예제를 올려봅니다.
복잡 할 것 같지만 생각 외로 간단해서 저도 깜짝 놀랐습니다.
먼저 소스 코드 부터 보세요~!
public class Test {
public static void main(String[] args) throws IOException {
File file1 = new File("pic.png");
File file2 = new File("copy2.png");
long fsize1 = file1.length(); // 원본 파일 크기 변환
System.out.println("원본 파일 크기 : " + fsize1);
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
int input=0, count=0;
byte[] data = new byte[1024];
while((input=fis.read(data))!=-1){
// 배열을 할 때는 0부터 끝까지 넣어야함
fos.write(data, 0, input);
count+=input;
// (읽은 바이트 수 / 전체 파일 크기) * 100
float per = ((float)count/fsize1) * 100;
System.out.println((int)per + "% 카피됨");
}
}
}
위의 소스 코드를 실행하면 아래와 같은 결과 화면이 나옵니다.
5194 바이트 크기의 원본 이미지 파일을 카피 했다는 문구가 뜹니다.
이와 동시에 폴더에 copy2.png 라는 이름을 가진 복사 파일본이 생기게 됩니다.
그림 이미지 파일은 똑같지만 잘 보면 파일명이 다릅니다.
원본 파일은 pic.png, 복사 된 파일은 copy2.png 입니다.
위의 예제를 응용하면 다양한 용도로 활용할 수 있을 것 같습니다.
댓글 없음:
댓글 쓰기