P: 11
|
I'm writing a program that reads information from three seperate classes. Here is my code: -
public class Animal
-
{
-
protected int id;
-
protected String type;
-
protected double mass;
-
-
//------------------------------------------------------------------------
-
// Sets up an animal with the specified ID number, type and weight.
-
//------------------------------------------------------------------------
-
-
public Animal (int animalID, String animalType, double weight)
-
{
-
id = animalID;
-
type = animalType;
-
mass = weight;
-
}
-
-
//------------------------------------------------------------------------
-
// Returns information about this animal as a string.
-
//------------------------------------------------------------------------
-
-
public String toString()
-
{
-
String description = "ID: " + id + "\n";
-
-
description += "Type: " + type + "\n";
-
description += "Weight: " + mass + "\n";
-
-
return description;
-
}
-
}
-
-
public class Pet extends Animal
-
{
-
private String title;
-
private String own;
-
-
//------------------------------------------------------------------------
-
// Sets up a pet using the specified information.
-
//------------------------------------------------------------------------
-
-
public Pet (int animalID, String animalType, double weight, String name, String owner)
-
{
-
super (animalID, animalType, weight);
-
-
title = name;
-
own = owner;
-
}
-
-
//------------------------------------------------------------------------
-
// Returns information about this pet as a string.
-
//------------------------------------------------------------------------
-
-
public String toString()
-
{
-
String description = super.toString();
-
-
description += "Name: " + title + "\n";
-
description += "Owner: " + own + "\n";
-
-
return description;
-
}
-
}
-
-
public class ZooAnimal extends Animal
-
{
-
private int cage;
-
private String train;
-
-
//------------------------------------------------------------------------
-
// Sets up a zoo animal using the specified information.
-
//------------------------------------------------------------------------
-
-
public ZooAnimal (int animalID, String animalType, double weight, int cageNumber, String trainer)
-
{
-
super (animalID, animalType, weight);
-
-
cage = cageNumber;
-
train = trainer;
-
}
-
-
//------------------------------------------------------------------------
-
// Returns information about this zoo animal as a string.
-
//------------------------------------------------------------------------
-
-
public String toString()
-
{
-
String description = super.toString();
-
-
description += "Cage: " + cage + "\n";
-
description += "Trainer: " + train + "\n";
-
-
return description;
-
}
-
}
-
-
import java.util.Scanner;
-
import java.util.StringTokenizer;
-
import java.io.*;
-
-
public class FileRead
-
{
-
public static void main (String[] args) throws FileNotFoundException
-
{
-
Scanner scan = new Scanner(new File("animal.txt"));
-
String animalType = null, name = null, trainer = null, owner = null, input = null;
-
int animalID = 0, cageNumber = 0, animalTotal = 0, petTotal = 0, zooTotal = 0;
-
double weight = 0.0;
-
StringTokenizer st = null;
-
Animal animal = null;
-
Pet pet = null;
-
ZooAnimal zooAnimal = null;
-
-
System.out.println("\nThis program lists information from a series");
-
System.out.println("of animals, pets and zoo animals from a seperate");
-
System.out.println("text file. It prints theID number, animal type");
-
System.out.println("and weight of each, if the animal is also a pet,");
-
System.out.println("in addition. If the animal is a zoo animal, then");
-
System.out.println("then a name and owner a cage number and trainer");
-
System.out.println("will be added.\n");
-
-
while (scan.hasNextLine())
-
{
-
input = scan.nextLine();
-
st = new StringTokenizer(input, ",");
-
animalID = Integer.parseInt(st.nextToken());
-
animalType = st.nextToken();
-
weight = Double.parseDouble(st.nextToken());
-
-
if (animalID > 1000 && animalID < 3000)
-
{
-
animal = new Animal (animalID, animalType, weight);
-
System.out.println(animal);
-
animalTotal++;
-
}
-
if (animalID > 3000 && animalID < 8000)
-
{
-
name = st.nextToken();
-
owner = st.nextToken();
-
pet = new Pet(animalID, animalType, weight, name, owner);
-
System.out.println(pet);
-
petTotal++;
-
}
-
if (animalID > 8000 && animalID < 10000)
-
{
-
cageNumber = Integer.parseInt(st.nextToken());
-
trainer = st.nextToken();
-
zooAnimal = new ZooAnimal(animalID, animalType, weight, cageNumber, trainer);
-
System.out.println(zooAnimal);
-
zooTotal++;
-
}
-
if (animalID > 9999 && animalID < 1000)
-
{
-
System.out.println("The ID number is invalid.");
-
}
-
}
-
-
System.out.println("\nNumber of animals total: " + animalTotal + ".");
-
System.out.println("Number of pets total: " + petTotal + ".");
-
System.out.println("Number of zoo animals total: " + zooTotal + ".");
-
-
FileWriter fw = new FileWriter("animalout.txt");
-
BufferedWriter bw = new BufferedWriter(fw);
-
PrintWriter pw = new PrintWriter(bw);
-
-
pw.println(animal.createOutputFile());
-
pw.close();
-
}
-
}
-
The following code segment is animal.txt -
1200,Ape,65.2,
-
5000,Cow,600.8,Bessie,Stu DeFranco,
-
7999,Dog,13.4,Arf,George Aycoth,
-
8050,Giraffe,830.3,103,Samuel Trujillo,
-
9700,Snake,23.0,239,Monica Trevizo,
-
I'm trying to write the object's data type to the output file, "animalout.txt", but I keep getting an error reading:
FileRead.java:79: cannot find symbol
symbol : method createOutputFile()
location: class Animal
pw.println(animal.createOutputFile());
| |