如何删除“?”在 java 中读取的文件末尾登录

how to remove '?' sign in the end of file read in java

我正在学习文件输入输出,我在其中遇到问题。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:\文件>javac fRead.java
G:\file>java fRead
VINAYAK 计算机学院?

the***'?'***到底是不是在文件末尾。

发生此问题是因为您在将 read() 转换为 char 后打印 -1,即使在 [=11= 时循环应该停止而不打印任何内容] 返回。

您可以通过将赋值与负数检查相结合来修复它:

while ((i = fin.read()) != -1) {
    System.out.print((char)i);
}