2014-07-05 2 views
-2

어떤 유형의 파일이라도 콘솔의 바이너리 (16 진수) 형식으로 내용을 JAVA 형식으로 표시하는 방법은 무엇입니까? txt 파일이 있다고 가정하면 내용을 표시하는 방법을 알고 있습니다. 그러나 파일이 png 또는 zip 파일 인 경우 콘솔에서 해당 내용을 이진 (16 진수) 형식으로 표시해야합니다.JAVA - 바이너리 모드로 파일을 표시하는 방법

+0

http://stackoverflow.com/questions/9655181/convert-from-byte-array-to-hex-string-in-java –

+0

파일 "인쇄"를 16 진수로 읽습니다. –

+0

고마워. 문자열이 아닌 "test.png"이미지 파일이 있고 그 내용을 NetBeans의 콘솔에 표시하려고합니다. 이미지는 표시 할 수 없지만 이미지 파일은 이진 코드로 표시됩니다. 어떻게해야합니까? – user3204065

답변

1

두 가지 옵션에 수 중 문자열 서식을 사용합니다 :

String.format("%02x", b & 0xff) //Where b is your byte value 

을 또는 당신은 정수 (들)와 같은 바이트 (들)을 사용하고 정수 클래스에이 방법을 사용할 수 있습니다

Integer.toHexString(int i) 

예 :

//Just some image on my hard drive 
File file = new File("C:\\Users\\%username%\\Pictures\\Memes\\What_If_I_Told_You.jpg"); 
StringBuilder builder = new StringBuilder(); 
try { 
    FileInputStream fin = new FileInputStream(file); 
    byte[] buffer = new byte[1024]; 
    int bytesRead = 0; 
    while((bytesRead = fin.read(buffer)) > -1) 
     for(int i = 0; i < bytesRead; i++) 
      builder.append(String.format("%02x", buffer[i] & 0xFF)).append(i != bytesRead - 1 ? " " : ""); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
System.out.println(builder.toString()); 

이것의 출력이었다 FF FF E0 D8 00 10 4A 46 49 46 00 01 01 00 48 01 ... 등

토마스

+0

고마워. 문자열이 아닌 "test.png"이미지 파일이 있고 그 내용을 NetBeans의 콘솔에 표시하려고합니다. 이미지는 표시 할 수 없지만 이미지 파일은 이진 코드로 표시됩니다. 어떻게해야합니까? – user3204065

+0

기본적으로 파일 내용을 바이트로 읽습니다 (표준 io (또는 nio) 메 커닉 사용). 그런 다음 읽은 바이트를 가져 와서 나열된 메서드 중 하나를 사용하여 16 진수 값을 나타내는 String으로 변환합니다. 그런 다음 해당 문자열을 콘솔에 인쇄하십시오. –

+0

정말 고맙습니다. 그것은 매우 도움이됩니다. – user3204065

관련 문제