我正在使用FileReader和read(char[] ch)方法从带有read()对象的文件中读取所有字符。但是,当我尝试使用这两种方法时,我只得到一个输出。
下面是我的代码片段:
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部件没有执行吗?
发布于 2016-03-22 07:19:47
发布于 2016-03-22 07:24:41
您的fr.read(ch)调用正在读取整个文件。
在此之后调用fr.read()将检测到EOF,而不会返回任何字符。
在更改代码读取部分的顺序时,您将看到不同的行为。
您还应该检查fr.read(ch)调用读取的字符数。这应该能给出线索。
https://stackoverflow.com/questions/36148246
复制相似问题