黑马程序员技术交流社区
标题:
关于FileReader读取数组字符不懂的一个地方
[打印本页]
作者:
来自沙沙的我
时间:
2014-5-30 21:50
标题:
关于FileReader读取数组字符不懂的一个地方
本帖最后由 来自沙沙的我 于 2014-5-31 16:13 编辑
public class IO_11 {
public static void main(String[] args) throws IOException
{
FileReader ty=new FileReader("D:/fdf.txt");
char[] a1=new char[3];
int i=0;
while((i=ty.read(a1))!=-1)
{
System.out.println("a1[]读取数目为"+i+",为"+new String(a1));
}
ty.close();
}
}
复制代码
上面的代码通过且读取正确;可是下面的代码运行正常但是读取的时候混乱错误,求解为什么?
import java.io.*;
public class IO_11 {
public static void main(String[] args) throws IOException
{
FileReader ty=new FileReader("D:/fdf.txt");
char[] a1=new char[3];
while((ty.read(a1))!=-1)
{
int i=ty.read(a1);
System.out.println("a1[]读取数目为"+i+",为"+new String(a1));
}
ty.close();
}
}
复制代码
作者:
小坏坏
时间:
2014-5-30 22:53
while()中Read函数已经读取了文本中的字符,但是你没输出来,所以会出现混乱。
作者:
luoanjade
时间:
2014-5-30 23:09
本帖最后由 luoanjade 于 2014-5-30 23:17 编辑
这个错误很明显呀,我之前也看到过类似的帖子。while里面已经读过一次了,在下面又读了一次。跟这个贴很类似:
http://bbs.itheima.com/forum.php?mod=viewthread&tid=110968&page=1#pid668912
作者:
没壳的蜗牛
时间:
2014-5-30 23:13
读了两次啊!一次没有打印,一次打印,当然会出现不对啊!
作者:
来自沙沙的我
时间:
2014-5-31 16:08
可是为什么会是那样的结果呢?
作者:
来自沙沙的我
时间:
2014-5-31 16:10
没壳的蜗牛 发表于 2014-5-30 23:13
读了两次啊!一次没有打印,一次打印,当然会出现不对啊!
恩,是这样。谢谢啊。
作者:
来自沙沙的我
时间:
2014-5-31 16:13
谢谢大家的回复。确实是那样。
每次while循环都读取了两次,而i只是被赋值了第二次,所以本来的四次赋值变成了只有第二次和第四次。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2