Я пытаюсь прочитать одно байтовые целые числа из файла. Целые числа читаются правильно, однако процесс продолжает читать целое число «-1», не выбрасывая исключение EOF.Чтение из двоичного файла возвращает -1 без бросания EOFException
Вот как я пишу целые числа в файл. Я читал 4 байтовых целых числа из класса1.dat и помещал те, которые ниже 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();
}
Вот как я прочитал 1 байтовые целые числа из output1.dat.
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 не выбрасывается?