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类的第二个方法的测试类第一个测试类能成功运行,第二个测试类就不行了,不知道哪里出问题了,求教大神解答。先谢谢了
添加回答
举报
0/150
提交
取消