猿问

谁能帮忙看下我的javaIO字节流的相关问题,谢谢了

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类的第二个方法的测试类



第一个测试类能成功运行,第二个测试类就不行了,不知道哪里出问题了,求教大神解答。先谢谢了


aiguo94
浏览 1304回答 3
3回答

Its_forever

第二个测试类没毛病啊,报什么错了?
随时随地看视频慕课网APP

相关分类

Java
我要回答