-1

I'm working on a program that reads input from a text file and outputs it into multiple .csv files. I'm running into issues with my driver class and inputFile class. When I run the program I get this error

input error

This is my code for the driver:

import java.util.Scanner;

public class AirlineDriver
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        System.out.print("Enter name of file: ");
        Scanner keyboard = new Scanner(System.in);
        String filename = keyboard.nextLine();

        AirlineInput input = new AirlineInput();

        input.openFile(filename);

        Airline airline1 = input.readFile();
        Airline airline2 = input.readFile();
        Airline airline3 = input.readFile();
        Airline airline4 = input.readFile();
        Airline airline5 = input.readFile();
        Airline airline6 = input.readFile();
        Airline airline7 = input.readFile();
        Airline airline8 = input.readFile();    

        input.closeFile();

        AirlineOutput output = new AirlineOutput();

        output.openFile(airline1);
        output.openFile(airline2);
        output.openFile(airline3);
        output.openFile(airline4);
        output.openFile(airline5);
        output.openFile(airline6);
        output.openFile(airline7);
        output.openFile(airline8);

        output.closeFile();
    }
}

and this is my code for the input class

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class AirlineInput
{
    Scanner input = null;

    public Scanner openFile(String filename)
    {

        try
        {
            input = new Scanner(new File(filename));
        }
        catch (FileNotFoundException e)
        {
            System.out.println("Unable to open file" + filename);
            System.exit(0);
        }
        return input;
    }

    public Airline readFile()
    {

        String airline = input.nextLine();
        String iataDesignator = input.nextLine();
        String icaoDesignator = input.nextLine();
        String callSign = input.nextLine();
        String frequentFlyer = input.nextLine();
        String alliance = input.nextLine();
        String city = input.nextLine();
        String state = input.nextLine();
        String country = input.nextLine();
        String website = input.nextLine();

        Designator designate = new Designator(iataDesignator, icaoDesignator, callSign);
        Location location = new Location(city, state, country);
        Airline airlineObject = new Airline(airline, designate, frequentFlyer, alliance, location, website);

        return airlineObject;
    }

    public void closeFile()
    {
        input.close();
    }
}

and the text file I'm using for input

Alaska Airlines
IATA ASA ALASKA
Mileage Plan

SeaTac
WA
USA
alaskaair.com
Allegiant Air
G4 AAY ALLEGIANT


Enterprise
NV
USA
allegiantair.com
Air Canada
AC ACA AIR_CANADA
Aeroplan
Star Alliance
Montreal
QC
Canada
aircanada.com
Lufthansa
LH DLH LUFTHANSA
Miles & More
Star Alliance
Cologne

Germany
lufthansa.com
American Airlines
AA AAL AMERICAN
AAdvantage
Oneworld
Fort Worth
TX
USA
aa.com
United Airlines
UA UCAL UNITED
MileagePlus
Star Alliance
Chicago
IL
USA
united.com
Delta Airlines
DL DAL DELTA
SkyMiles
SkyTeam
Atlanta
GA
USA
delta.com
Hawaiian Airlines
HA HAL HAWAIIAN
HawaiianMiles

Honolulu
HI
USA
hawaiianair.com
PM 77-1
  • 12,933
  • 21
  • 68
  • 111
Mr_Traum
  • 11
  • 3

1 Answers1

1

Your readFile() method reads 10 lines per airline, but the file only contains 8 lines per airline.

10 reads          8 lines

airline           Alaska Airlines
iataDesignator    IATA ASA ALASKA
icaoDesignator    Mileage Plan
callSign          
frequentFlyer     SeaTac
alliance          WA
city              USA
state             alaskaair.com
country           
website           


10 reads          8 lines

airline           Allegiant Air
iataDesignator    G4 AAY ALLEGIANT
icaoDesignator    
callSign          
frequentFlyer     Enterprise
alliance          NV
city              USA
state             allegiantair.com
country           
website           
Andreas
  • 154,647
  • 11
  • 152
  • 247
  • 1
    thank you, i realized i should have been using Next() instead of NextLine() for a few of them. That fixed it. – Mr_Traum Nov 13 '15 at 23:40