以十六进制展示二进制文件

    xiaoxiao2021-03-25  93

    package cn.gloomy.h.file.api; import java.io.File; import java.io.FileInputStream; public class FileConvert { private static int highOrder = 128+64+32+16; private static int lowerOrder = 8+4+2+1; private static String[] HEX={"0","1","2","3", "4","5","6","7", "8","9","A","B", "C","D","E","F",}; //二进制转换为十六进制 public static String getHex(Integer b){ Integer tm=0; if(b<0){ return _binaryToHex(1+~b,true)+_binaryToHex(~b+1, false); }else{ return _binaryToHex(b, true)+_binaryToHex(b, false); } } private static String _binaryToHex(Integer Binary,boolean order){ if(order){ return HEX[(Binary&highOrder)>>4]; }else{ return HEX[Binary&lowerOrder]; } } public static void main(String[] args){ //二进制文件绝对路径 File f = new File("C:\\Users\\adminnn\\Desktop/600X600.jpg"); if(!f.exists()){ return ; } try { FileInputStream input = new FileInputStream(f); int b; int i=0; while((b = input.read())!=-1){ System.out.print(getHex(b)); i++; if(i2 == 0){System.out.println();} else if(i%2==0){System.out.print(" ");} } input.close(); } catch (Exception e) { e.printStackTrace(); } } }
    转载请注明原文地址: https://ju.6miu.com/read-39478.html

    最新回复(0)