1.8 KiB
1.8 KiB
Lecture 1
Files
import java.utils.*
import java.io.*
public void writeAnimalData( String fileName ) throws FileNotFoundException
{
PrintWriter pWriter = new PrintWriter( fileName );
for( Animal a: animalCollection )
{
String lineOfOutput = a.getName() + "" + a.getSpecies();
pWriter.println( lineOfOutput );
}
pWriter.close();
}
Without using throws FileNotFoundException
, a compilation error will occur. Any method that may possibly throw an exception must advertise this by using throws
to discard the error to avoid a crash.
The method PrintWriter
itself, also includes the clause, as can be seen in the Java.io documentation.
public Zoo( String fileName ) throws FileNotFoundException
{
this();
readAnimalData( fileName );
}
This allows us to use the code from the default constructor without duplicating the code. this();
must be the first keyword in the method.
Scanner
The scanner class is used to read data from the keyboard / file.
Once a Scanner object has been created (from Java.util), data can be read: new Scanner( System.in );
A Scanner object breaks the input into tokens separated by whitespaces. Each line of data in the file can be easily read with the following:
String name = scanner.next();
String species = scanner.next();
Ex
public void readAnimalData( String fileName) throws FileNotFoundException
{
File dataFile = new File( fileName ); //Create file to write to.
Scanner scanner = new Scanner( dataFile ); //Initialise scanner.
while( scanner.hasNext() )
{
String name = scanner.next(); //First token in line.
String species = scanner.next(); //Second token in line.
StoreAnimal( new Animal( species, name ) ); //Store the tokens as an animal in list.
scanner.nextLine(); //Increment to next line.
}
scanner.close();
}