猿问

谁能帮我看看这个问题,谢谢啊。求助求助啊

package lianxi;
import java.io.FileInputStream;
import java.io.IOException;
 
public class IOUtil {
    /**
     * 读取指定文件内容,按照16进制输出到控制台
     * 并且每输出十个byte换行
     * @param fileName
     */
    public static void printHex(String fileName) throws IOException{
        //把文件作为字节流进行读操作
        FileInputStream in=new FileInputStream(fileName);
        int b;
        int i=1;
        while((b=in.read())!=-1){
            if(b<=0xf){
                //单 位数前面补0
                System.out.print("0");
            }
            System.out.print(Integer.toHexString(b)+"  ");//将整型b转换为16进制表示的字符串
            if(i++%10==0){
                System.out.println();
            }
        }
        in.close();
    }
     
    public static void printHexByByteArray(String fileName) throws IOException{
        FileInputStream in=new FileInputStream(fileName);
        byte[] buf=new byte[20*1024];
        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();
            }
        }
        in.close();
    }
     
}

------》这个是IOUtil类

package lianxi;
import java.io.IOException;
public class IOUtilTest1 {
public static void main(String[] args) {
try {
IOUtil.printHex("e:\\wordstudy\\hello.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}

-----》这个是IOUtilTest1类,是测试IOUtil类的第一个方法的测试类

package lianxi;
import java.io.IOException;
public class IOUtilTest2 {
public static void main(String[] args) {
try {
IOUtil.printHexByByteArray("e:\\wordstudy\\hello.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}

----》这个是IOUtilTest2类,是测试IOUtil类的第二个方法的测试类

这个是第一个测试类运行的结果 

c4 e3 ba c3 c2 f0 0d 0a c4 e3

 ba c3 c4 e3 ba c3 b0 a1 a3 ac

 0d 0a ce d2 ba dc ba c3 b0 a1

 a3 ac 0d 0a b9 fe b9 fe 0d 0a

 c0 b2 c0 b2 c0 b2 

这是第二个测试类运行的结果

 0ffffffc4 0ffffffe3 0ffffffba 0ffffffc3 0ffffffc2 0fffffff0 0d 0a 0ffffffc4 0ffffffe3

 0ffffffba 0ffffffc3 0ffffffc4 0ffffffe3 0ffffffba 0ffffffc3 0ffffffb0 0ffffffa1 0ffffffa3 0ffffffac 

0d 0a 0ffffffce 0ffffffd2 0ffffffba 0ffffffdc 0ffffffba 0ffffffc3 0ffffffb0 0ffffffa1 

0ffffffa3 0ffffffac 0d 0a 0ffffffb9 0fffffffe 0ffffffb9 0fffffffe 0d 0a

 0ffffffc0 0ffffffb2 0ffffffc0 0ffffffb2 0ffffffc0 0ffffffb2 

本来两个结果应该是一样的。不知道哪里出问题了。求教大神解答。先谢谢了


aiguo94
浏览 1457回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答