while ((b=fin.read())!=-1) {
写成
int b =fin.read();
while(b!=-1)就只重复打印第一个
while ((b=fin.read())!=-1)
判断的是fin.read()是否读到最后,而且每次判断都会重新给b赋值,这里主要是read()会一个一个往下读取。
while(b!=-1)
这里只给int b赋值一次,这里只判断b里面的值,如果b不等于-1不就一直打印一个嘛。