首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA中的FileReader方法read()和read(char[])

JAVA中的FileReader方法read()和read(char[])
EN

Stack Overflow用户
提问于 2016-03-22 07:15:11
回答 2查看 3.7K关注 0票数 0

我正在使用FileReaderread(char[] ch)方法从带有read()对象的文件中读取所有字符。但是,当我尝试使用这两种方法时,我只得到一个输出。

下面是我的代码片段:

代码语言:javascript
复制
class FR
{
    void filereader() throws Exception
    {
        File f = new File("abc.txt");
        FileReader fr = new FileReader(f);
        char[] ch = new char[(int)f.length()];
        fr.read(ch);
        for (char ch1 : ch)
        {
            System.out.print(ch1);
        }
        System.out.println("\n*********************************");
        int i = fr.read();
        while(i != -1)
        {
            System.out.print((char)i);
            i = fr.read();
        }
        fr.close();
    }
}

请有人解释一下为什么while部件没有执行吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-22 07:19:47

当你表演时:

代码语言:javascript
复制
char[] ch = new char[(int)f.length()];
fr.read(ch);

您正在有效地读取整个文件

在此之后,每次对read的调用都将返回-1,因为这是文件的结束:

返回已读取的字符数,如果已到达流的末尾,则返回-1。

您可以看到一个使用输入/输出这里的例子。

如果您想逐字或逐行读取文件,您可能需要查看扫描仪

票数 4
EN

Stack Overflow用户

发布于 2016-03-22 07:24:41

您的fr.read(ch)调用正在读取整个文件。

在此之后调用fr.read()将检测到EOF,而不会返回任何字符。

在更改代码读取部分的顺序时,您将看到不同的行为。

您还应该检查fr.read(ch)调用读取的字符数。这应该能给出线索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36148246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档