본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)

파일 복사하기, Blob데이터를 파일로 만들기

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 25.

 

 

종종 파일을 이동 하거나 이름을 바꾸는 경우는 있어도 파일을 복사하는 경우는 별로 없었던 것 같다.

아래 소스코드는 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 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글