read()的返回值怎么会出现不一样的结果呢?
int bytes = 0;
bytes = in.read(buf, 0, buf.length);
System.out.println(bytes);
System.out.println(bytes = in.read(buf,0,10));
System.out.println(bytes = in.read(buf, 0, buf.length));
返回值分别是
100
-1
-1
这种不同的返回值是怎么出现的呢?源码里面的判断么?
int bytes = 0;
bytes = in.read(buf, 0, buf.length);
System.out.println(bytes);
System.out.println(bytes = in.read(buf,0,10));
System.out.println(bytes = in.read(buf, 0, buf.length));
返回值分别是
100
-1
-1
这种不同的返回值是怎么出现的呢?源码里面的判断么?
2015-10-30
public static void printHexBYByteArray(String fileName)throws IOException{
FileInputStream in = new FileInputStream(fileName);
byte [] buf = new byte[8*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();
// }
int bytes = 0;
// bytes = in.read(buf, 0, buf.length);
// System.out.println(bytes);
// System.out.println(bytes = in.read(buf,0,10));
// System.out.println(bytes = in.read(buf, 0, buf.length));
//
int j = 0;
while((bytes = in.read(buf, 0, buf.length))!=-1){
for(int i = 0; i<bytes ; i++)
{
if(buf[i] <= 0xf)
{
System.out.print("0");
}
System.out.print(Integer.toHexString(buf[i] & 0xff)+" ");
if(j++%10 == 0)
{System.out.println();}}}
in.close();}
举报