输出结果不一样,看了代码是和老师的一样的

来源:4-2 字节流之文件输入流FileInputStream-2

qq_慕盖茨4301552

2020-10-25 17:57

为什么我IOUtilTest2的和1的输出结果不同,下面是摘取的一段不同的输出结果

这是IOUtilTest2的:

20  20  20  2f  2a  2a  0d  0a  20  20 

20  20  20  2a  20  0ffffffe8  0ffffffaf  0ffffffbb  0ffffffe5  0ffffff8f  

这是IOUtilTest1的:

20  20  20  2f  2a  2a  0d  0a  20  20 

20  20  20  2a  20  e8  af  bb  e5  8f

IOUtilTest2的代码:

public static void printHexByByteArray(String fileName)throws IOException{
    FileInputStream in=new FileInputStream(fileName);
    byte[]buf=new byte[20*1024];
    /**从in中批量读取字节
     * 放入到buf这个字节数组中
     * 从第0个位置开始放
     * 最多放buf.length个
     * 返回的是读取到的字节的个数
     */
    int bytes=in.read(buf,0, buf.length);//一次性读完,说明字节数组足够大
    int j=1;
    for (int i=0;i<bytes;i++){
        if (buf[i]<=0xf){
            System.out.print("0");
        }
        System.out.print(Integer.toHexString(buf[i])+"  ");
        if (j++%10==0){
            System.out.println();
        }
    }


写回答 关注

2回答

  • 慕容0085175
    2020-11-03 17:26:32
    System.out.print(Integer.toHexString(buf[i])+"  ");

    前面补了0 , 后面这里

    nteger.toHexString(buf[i])+

    没有去0

  • 慕容0085175
    2020-11-03 17:25:32
    if (buf[i]<=0xf){
                System.out.print("0");
            }

    你这个代码是前面补0 了吧

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题