종종 파일을 이동 하거나 이름을 바꾸는 경우는 있어도 파일을 복사하는 경우는 별로 없었던 것 같다.
아래 소스코드는 jdk 1.4부터 사용가능한 파일 복사용 메소드이다.
간혹 이런거 만들기 귀찮을 때 공통 util용 클래스 만들고 가져다 쓰면 편하다.
//파일카피, 첫번째는 원본파일, 두번째는 대상
public static void copyFileUsingChannel(File source, File dest) throws IOException {
FileChannel sourceChannel = null;
FileChannel destChannel = null;
FileInputStream fs = null;
FileOutputStream fo = null;
try {
fs = new FileInputStream(source);
fo = new FileOutputStream(dest);
sourceChannel = fs.getChannel();
destChannel = fo.getChannel();
destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
}catch (Exception e) {
e.printStackTrace();
}finally{
if(fs != null){fs.close();}
if(fo != null){fo.close();}
if(fo != null){sourceChannel.close();}
if(destChannel != null){destChannel.close();}
}
}
간혹..오라클 데이터베이스에 blob 또는 clob 형태로 저장 된 데이터를 가져와서 복원하는 경우가 있는데..이럴때는 아파치에서 나온 commons-io 라이브러리를 활용하면 쉽게 파일로 변환 가능하다.
public static boolean blobToFile(Object item,String file_path) throws Exception{
try {
BLOB blob = (oracle.sql.BLOB)item; //item은 데이터베이스 조회 결과이다. 여기서는 Object로 표시하였다.
byte [] content = blob.getBytes( 1, ( int ) blob.length() );
FileUtils.writeByteArrayToFile(new File(file_path), content);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
반응형
'Java(자바)' 카테고리의 다른 글
Java Exception 기록하기 (0) | 2019.04.25 |
---|---|
Java로 프로그램(exe, sh같은) 실행 (0) | 2019.04.25 |
Java로 File 만든 날짜 보기 (0) | 2019.04.25 |
jsch 사용법(ssh 연결) (0) | 2019.04.25 |
자바 함수형 프로그래밍 (0) | 2019.04.25 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글