首先这是我自己写代码的时候遇到的一个问题,我思来想去,终于想通透了,所以想分享给大家,当然这也是一个非常简单的问题,大神勿喷。
public class IO_InputStream
public static void main(String[] args){//需要导包的,图方便我就不写了
//1.new一个FileInputStream对象
FileInputStream fis = new FileInputStream("chifan.next)) ;
//例如这个文本里面我放了1234567共7个字符,下面开始读取文件
while(fis.read() != -1){
System.out.print( char)fis.read() ); //将read()方法调用后返回值为int类型强制转换为字符,以便打印
}
//但是打印结果就是:246,隔一个打印一个,我感到疑惑
//后来我左思右想发现我在while的执行语句块里面的打印方法又调用了一次read()方法,导致打印的其实是每次读取两个字符后,只会打印每两个的最后一个字符,如果我们在123456后面再一个7,那么最后打印的就是一个?如何解决呢?就是我们不要在执行语句块里面出现read()方法
int len;
while(len=fis.read() != -1){
System.out.print( char)len);
}
//这样结果就一致了
本文通过一个简单的Java示例,展示了如何正确使用FileInputStream进行文件读取,避免因重复调用read方法导致的数据读取错误。
2043

被折叠的 条评论
为什么被折叠?



