黑马程序员技术交流社区

标题: IO程序出问题了,求助 [打印本页]

作者: 征服    时间: 2014-4-1 17:22
标题: IO程序出问题了,求助
本帖最后由 征服 于 2014-4-3 08:58 编辑

这是怎么回事?我的运行结果出现那么多问号?求解,谢谢!
import java.io.*;
class FileReaderDemo
{
        public static void main(String[] args) throws IOException
        {
                FileWriter fw=new FileWriter("demo.txt");
                fw.write("abcdef");
                fw.close();
                //创建一个文件读取流对象,和指定名称的文件相关联。
                FileReader fr=new FileReader("demo.txt");
                int ch1=0;
                while((ch1=fr.read())!=0)
                {
                        System.out.println("ch1="+(char)ch1);
                }
                fr.close();//关闭流
        }
}

结果如下:
D:\Java\EditPlus\old files>java FileReaderDemo
ch1=a
ch1=b
ch1=c
ch1=d
ch1=e
ch1=f
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
ch1=?
作者: 阳春烟景    时间: 2014-4-1 17:39
你写入的是abcdef在demo.txt中,当你读数据的时候,你写的是ch1=fr.read())!=0,这是一个死循环,应该写成ch1=fr.read())!=-1,就会只读abcdef
作者: 亓华森    时间: 2014-4-1 17:52
楼上正解,java中,通过判断是否为-1,来判断是否已读到文件的结尾!这个知识点在毕老师的基础视频第18天的课程中有详细介绍~
作者: 征服    时间: 2014-4-2 13:11
谢谢!已经修改,得出正确结果




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2