J'essaie de lire des entiers d'un octet à partir d'un fichier. Les entiers sont lus correctement mais le processus continue de lire l'entier '-1' sans lancer une exception EOF.La lecture à partir du fichier binaire renvoie -1 sans lancer EOFException
Voici comment j'écris les entiers dans le fichier. J'ai lu les entiers de 4 octets de class1.dat et ai mis ceux qui sont au-dessous de 256 dans output1.dat comme nombres entiers de 1 byte.
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();
}
Voici comment lire les entiers à 1 octet de 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();
}
Pourquoi EOFexception n'est-il pas levé?