我正在学习文件输入输出,我在其中遇到了问题。a.txt有一些文本,当它读取和打印世界时,结尾有“?”标记。
import java.io.*;
class fRead{
public static void main(String args[])throws IOException
{
FileInputStream fin=new FileInputStream("a.txt");
int i=0;
while(i!=-1){
i=fin.read();
System.out.print((char)i);
}
fin.close();
}
}CMD:- G:\file>javac fRead.java的结果
G:\file>java fRead
维纳亚克计算机学院?
*‘?’*最后不是文件末尾。
发布于 2017-08-24 12:16:43
发生此问题是因为您在将-1转换为char后从read()打印它,即使在返回-1时循环应该停止而不打印任何内容。
您可以通过将赋值与检查负值相结合来修复该问题:
while ((i = fin.read()) != -1) {
System.out.print((char)i);
}https://stackoverflow.com/questions/45861360
复制相似问题