日期:2014-05-20  浏览次数:20825 次

java把文件以16进制打印控制台
如何把文件以16进制打印控制台;谁有现成的代码;谢谢
文件以16进制打印控制台

------解决方案--------------------

public static void main(String[] args) throws IOException {
BufferedInputStream bi = new BufferedInputStream(new FileInputStream(new File("D:\\123.txt")));
byte[] b = new byte[1024];
int len = 0;
while((len = bi.read(b)) != -1){
System.out.println(bytes2BinaryStr(Arrays.copyOf(b, len)));
}
bi.close();
}

    public static String bytes2BinaryStr(byte[] bytes){  
     String hexStr =  "0123456789ABCDEF";
        String result = "";  
        String hex = "";  
        for(int i=0;i<bytes.length;i++){  
            //字节高4位  
            hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));  
            //字节低4位  
            hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));  
            result +=hex+" ";  
        }  
        return result;  
          
    }

最好自己验证下结果对不对!
------解决方案--------------------
楼上少了填充0咯?

给个我测试用的,貌似没出错
我人比较懒,大家凑合着看吧

    /**
     * 将字节数组中的所有字节转换成 16 进制字符串
     *
     * @param b byte[]
     * @param len int
     * @return String