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]; /** * 从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(); } } 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类的第二个方法的测试类
第一个测试类能成功运行,第二个测试类就不行了,不知道哪里出问题了,求教大神解答。先谢谢了
特南克斯
相关分类