为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在int b哪里直接声明int b=in.read()后输出的数据未能进行进制转化?会连续出现 49 49 49 49不停止,而老师先声明b然后在while循环里赋上in.read()输出的字节码却没问题呢?

我所敲的不能进行转化,连续输出49……的代码:

FileInputStream in = new FileInputStream(fileName);

int b=in.read();

int i = 0;

while (b  != -1) {

System.out.print(Integer.toHexString(b) + " ");

while (i++ % 10 == 0)

System.out.println();

}

in.close();

老师敲的没问题的代码:

FileInputStream in = new FileInputStream(fileName);

int b;

int i = 0;

while ((b = in.read()) != -1) {

System.out.print(Integer.toHexString(b) + " ");

while (i++ % 10 == 0)

System.out.println();

}

in.close();


正在回答

2 回答

因为你这个代码只在声明的时候读取了一次,老师的放在while循环里每次进行循环都会读取一次。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在int b哪里直接声明int b=in.read()后输出的数据未能进行进制转化?会连续出现 49 49 49 49不停止,而老师先声明b然后在while循环里赋上in.read()输出的字节码却没问题呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信