【发布时间】:2023-03-19 03:43:01
【问题描述】:
我正在尝试从文件中读取一个字节的整数。整数被正确读取,但是进程继续读取整数“-1”而不会引发 EOF 异常。
这就是我将整数写入文件的方式。我从 class1.dat 中读取 4 字节整数,并将低于 256 的整数放入 output1.dat 中作为 1 字节整数。
FileInputStream fis = new FileInputStream("D:\\class1.dat");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
FileOutputStream fos = new FileOutputStream("D:\\output1.dat");
DataOutputStream dos = new DataOutputStream(fos);
try
{
while(true)
{
number = dis.readInt();
System.out.println("Integer read : " + number);
if(number < 256)
dos.write(number);
}
}
catch(EOFException e)
{
dis.close();
dos.close();
}
这就是我从 output1.dat 中读取 1 字节整数的方式。
DataInputStream dis = new DataInputStream(new FileInputStream("D:\\output1.dat"));
try
{
int number;
System.out.println("File with < 256");
while(true)
{
number = dis.read();
System.out.println("Number = " + number);
}
}
catch(EOFException e)
{
dis.close();
}
为什么不抛出 EOFexception?
【问题讨论】:
标签: java file eofexception