Reading until EOF

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.
go to previous page   go to home page   go to next page        

Answer:

In order to return values that can't be represented in data type byte.

Reading until EOF

An unsigned integer is zero or positive. In Java (regardless of computer platform) the primitive type byte holds an integer in the range -128 to +127. An unsigned byte holds values 0 to +255, so something larger than datatype byte is needed. Data type int is returned because it is used more often than the other integer types.

Most methods of DataInputStream throw an EOFException when the end of a file is reached. Let us work on a program that uses this idea to read 32-bit integers until end of file:

try
{
  while ( true )
    sum += instr.readInt();
}

catch ( EOFException  eof )
{
  System.out.println( "The sum is: " + sum );
  instr.close();
}

The while loop keeps going until readInt() hits the end of the file. Then an exception is thrown and execution jumps out of the loop to the catch{} block.

QUESTION 8:

Will catch ( EOFException eof ) catch an IOException that is not an EOFException?