如何删除“?”在 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);
}
我正在学习文件输入输出,我在其中遇到问题。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);
}