기본 매커니즘은 일반적인 [FileIn/Output]과 같다.
복사할 대상을 FileInputStream으로 특정 장소[buff]에 받아온 뒤 FileOutputStream으로 내보내 주는 것이다.
이 때 나오는 [buff]는 buffer를 뜻한다.
아래는 MyCoding 이라는 이미지를 MyCoding-복사본 으로 복사하기 예제이다.
package class03;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test05 {
public static void main(String[] args) {
final String path = "C:\\Users\\test\\test\\resource\\"; // 경로를 상수화하여 실수를 줄인다.
try {
FileInputStream fis=new FileInputStream(path+"MyCoding.png"); // 경로+파일명.확장자를 정확하게 입력해준다.
FileOutputStream fos=new FileOutputStream(path+"MyCoding-복사본.png"); // 같은 경로에 -복사분이 붙은 파일을 만들어준다.
byte[] buff=new byte[50000]; // 이미지를 byte로 받을 수 있기 때문에 byte단위의 배열 생성, 오른쪽에는 할당크기
int len; // length
while((len=fis.read(buff))!= -1) { // fis에서 읽어오는데, len까지 만약 끝까지 못 읽어왔다면 계속해서 아래수행
fos.write(buff,0,len); // buff 공간에, fos라는 곳에 데이터를 len까지만큼 넣을거다.
System.out.println("로그: while문 수행횟수확인");
}
fos.flush();
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("이미지 파일 복사-붙여넣기 완료");
}
}
}
'개발자노트' 카테고리의 다른 글
[MVC] DB사용 없이 기초예제 (학생부) (0) | 2022.06.28 |
---|---|
개발의 구조적 패턴 [MVC] (0) | 2022.06.28 |
Resource의 문자들을 [.parseInt]를 사용하여 연산하기 (0) | 2022.06.27 |
Resource [FileOutputStream]를 이용한 파일 생성과 입력 (0) | 2022.06.27 |
Resource를 (클래스 생성없이) JAVA로 불러오기 (FileInputStream) (0) | 2022.06.27 |