- Reading a text file line by line and storing an object in the array
- public void addVehicle(Vehicle[] Honda) throws FileNotFoundException
- {
- if(canAddVehicle() == true)
- {
- for(int i = 0; i < vehicles.length; i++)
- {
- if(vehicles[i] == null)
- {
- Scanner reader = new Scanner(file);
- Honda[i] = new Vehicle();
- Honda[i].readRecord(reader);
- vehicles[i] = Honda[i];
- reader.close();
- }
- }
- System.out.println("Vehicle Added!");
- }
- else
- {
- System.out.println("You can not add more than 4 vehicles.");
- }
- }
- public void readRecord(Scanner reader)
- {
- setMake(reader.next());
- setModel(reader.next());
- setYear(reader.nextInt());
- setvin(reader.next());
- setValue(reader.nextDouble());
- setMilesDriven(reader.nextInt());
- setLastOilChange(reader.nextInt());
- }
- Hyundai Sonata 2010 ABC236347NM2N2NW2 18455.34 8765 7567
- Chevy Blazer 1998 1234H32343LMN3423 29556.65 38559 38559
- public List<Vehicle> readVehicles(String file)
- {
- Scanner reader = new Scanner(file);
- List<Vehicle> vehicles = new ArrayList<Vehicle>();
- try
- {
- while (reader.hasNextLine())
- {
- vehicles.add(Vehicle.readFromScanner(reader));
- }
- }
- finally
- {
- reader.close();
- }
- return vehicles;
- }
- // In vehicle
- public static Vehicle readFromScanner(Scanner scanner)
- {
- String make = reader.next();
- String model = reader.next();
- int year = reader.nextInt();
- String vin = reader.next();
- // Don't use double for currency values
- BigDecimal value = reader.nextBigDecimal();
- int milesDriven = reader.nextInt();
- // Shouldn't this be some sort of date type?
- int lastOilChange = reader.nextInt();
- // I'll assume you have a constructor like this
- return new Vehicle(make, model, year, vin, value, milesDriven,
- lastOilChange);
- }
- public boolean addVehicle(Vehicle[] Honda) throws FileNotFoundException
- {
- boolean found = false;
- int position = 0;
- if(canAddVehicle() == true)
- {
- for(int i = 0; i < vehicles.length && !found; i++)
- {
- if(vehicles[i] == null)
- {
- position = i;
- found = true;
- }
- }
- Scanner reader = new Scanner(file);
- while(reader.hasNext())
- {
- Honda[position] = new Vehicle();
- Honda[position].readRecord(reader);
- vehicles[position] = Honda[position];
- position++;
- }
- reader.close();
- return true;
- }
- return false;
- }