컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post WinHex 사용법, WinHex(윈헥사) 실행법엑셀/Excel] 시트에 현재 날짜와 시간 입력하는 핫키, Put Date TimeC언어] 정수를 문자로 변환 출력 예제 소스; print int to charC언어] 영문 문자열 헥사(Hex) 덤프, 16진수로 변환 출력; String Dump한글 확장 완성형 문자열 헥사 덤프, 16진수로 변환; Hangul Hex Dump엑셀/MS워드 VBA매크로] 현재 날짜, 시간 출력 함수; Excel Word Date T...C언어] 숫자 정수 int 배열 정렬(소트Sort소팅) 역순/내림차순 정렬C언어] 문자열 배열 정렬(소트;Sort)역순 소팅, qsort 함수 사용법한글주소(URL)인코딩(encode, Encoding), 자바스크립트(JavaScript)...encodeURI, encodeURIComponent, escape 함수 차이점; 자바스크...

자바 Java] CRC32 구하기 소스, 파일 CRC 값 계산 출력

Wednesday, October 25, 2006

옵션으로 지정해준 파일의 CRC32 값을 구하는 자바 소스입니다. 자바에 내장되어 있는 java.util.zip.CRC32 클래스로 값을 얻습니다. ZIP 이나 RAR에서 사용되는 CRC32 값과 동일한 값을 얻을 수 있습니다.

이 자바 프로그램으로, 675MB 크기 파일의 CRC32 를 구하는 데, 16초 걸렸습니다.

순수한 C로 작성된 CRC32 프로그램으로는 15초 걸렸습니다. 약간 차이는 있지만, 속도는 아주 빠릅니다.


JAVA: 파일의 CRC32 값 얻기 소스 코드


소스 파일명: GetCRC32.java
import java.io.*;
import java.util.zip.*;


public class GetCRC32 {
  public static void main(String args[]) {

    // 파일명을 옵션으로 주지 않으면 에러 내고 종료
    if (args.length != 1) {
      System.err.println("Usage: java GetCRC32 <input filename>");
      System.exit(1);
    }

    // CRC32 값과 파일명 화면에 출력
    System.out.format(
                               "%08X : %s%n",
                      getCRC32Value(args[0]),
                                     args[0]
                      );

  }




  public static long getCRC32Value(String filename) {
    Checksum crc = new CRC32();

    try {
      ////////////////////////////////////////////////////////////////////////////////
      BufferedInputStream in = new BufferedInputStream(new FileInputStream(filename));
      byte buffer[] = new byte[32768];
      int length = 0;

      while ((length = in.read(buffer)) >= 0)
        crc.update(buffer, 0, length);

      in.close();
      ////////////////////////////////////////////////////////////////////////////////
    } catch (IOException e) {
        System.err.println(e);
        System.exit(2);
    }
    return crc.getValue();
  }

}



컴파일 및 실행 결과:
D:\Z>javac GetCRC32.java

D:\Z>java GetCRC32 0.exe
FE4186B2 : 0.exe

D:\Z>

0.exe 라는 어떤 파일의 CRC32 값이 FE4186B2 라고 나오고 있습니다.


D:\Z>javac GetCRC32.java && java GetCRC32 "사본 - test.jpg"
6E17BBC0 : 사본 - test.jpg

D:\Z>

공백과 한글이 들어간 파일명도, 큰따옴표로 둘러싸 주면 잘 작동합니다.


☞ 자바(Java)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top