Java FileInputStream.read()在打印时显示不需要的字符



我所遵循的教程显示了以下代码

System.out.println("File contents: ");
int character;
while((character=fileinputstream.read())!=-1) { 
System.out.print((char)character);
}
fileinputstream.close();

我试过了

System.out.println("File contents: ");
while((fileinputstream.read())!=-1) {   
System.out.print((char)fileinputstream.read());
}
fileinputstream.close();

现在,我知道这里有些字节会被跳过。但是没有跳过的字节将按原样打印。但是对于随机字符,输出是非常不同的。

我想了解这里的问题。感谢您提供的任何帮助!

当您调用fileinputstream.read时,它将读取指向的光标的字节并将光标移动到下一个字节。因为read方法被调用时,while循环条件被执行,一个字节读出了。本教程使用一个变量来保存该字节的值,以防止它丢失。

按照教程