How to re load an different file in java after having printed a previous one
<p>Ok So this code I have below is compiling  but I have a logic error. Ok so  After i enter the file with the data i would like it to read and I choose to print that data on screen I have the choice of loading a different file. However, when I do enter the name of the new file that I would like to load it does not load the file and the error message that I designated for that particular situation it outputted. I think i have to flush  the stream buffer after each write or something like that. So um if anyone can point of why this is happening then I would appreciate it.</p>

<p>import java.util.Scanner;
    import java.io.*;</p>

<pre><code>public class Driver {
    private static int numberOfCustomer = 0;
    private static Customer[] customerList = new Customer[10];

        private static void readInCustomer(String file){
        FileReader freader;
        BufferedReader inputFile;
        try{
            freader = new FileReader(file);
            inputFile = new BufferedReader(freader);
            String strLine;


            while ((strLine = inputFile.readLine()) != null)   {
                    customerList[numberOfCustomer] = new Customer();
                    customerList[numberOfCustomer].ID = strLine;
                    customerList[numberOfCustomer].name  =                 inputFile.readLine();
                    customerList[numberOfCustomer].address  = inputFile.readLine();
                    customerList[numberOfCustomer].phone  = inputFile.readLine();
                    numberOfCustomer++;
            }

            inputFile.close();
        }catch(Exception e){
            System.out.println("Could not find file "+file+" System will now exit");
            System.exit(1);

        }

        return;
    }

        private static void printCustomer(Customer customer){
        System.out.println("The Customer Data corresponding to Customer Number " + customer.ID  + " is:");
        System.out.println("Name:\t\t\t"+customer.name);
        System.out.println("Address:\t\t"+customer.address);
        System.out.println("Telephone:\t\t"+customer.phone);
        System.out.println();
        return;
    }

        private static void printAll(){
        boolean hasID = false;
            Scanner keyboard = new Scanner(System.in);

        System.out.println("All customers from data file "+numberOfCustomer);


        System.out.println(" Here they are!!! ");
        for(int i=0; i&lt;numberOfCustomer; i++){
            if(customerList[i] != null){
                System.out.println("The Customer Data corresponding to Customer Number " + customerList[i].ID  + " is:");
                System.out.println("Name:\t\t\t"+customerList[i].name);
                System.out.println("Address:\t\t"+customerList[i].address);
                System.out.println("Telephone:\t\t"+customerList[i].phone);
            }
        }
        if(!hasID){

        System.out.println("");
        }
        System.out.println("Would you like to go to the menu? (Y or N):");
        String input = keyboard.nextLine();
        char repeat = input.charAt(0);
         if(repeat == 'Y' || repeat == 'y'){Menu();} 
                    return;
    }

    private static void Menu(){
        boolean hasID = false;
        Scanner keyboard = new Scanner(System.in);

        System.out.println("YOU MAY CHOOSE FROM THE FOLLOWING OPTIONS:");
      System.out.println("A. SEARCH for a customer by ID number");
      System.out.println("B. DISPLAY the entire Customer List");
      System.out.println("C. RE-LOAD DATA from a different data file");
      System.out.println("D. QUIT:");

        String choice = keyboard.nextLine();

        char repeat = choice.charAt(0);
         if(repeat == 'A' || repeat == 'a'){Scostomer();} 
            if(repeat == 'B' || repeat == 'b'){printAll();}
            if(repeat == 'C' || repeat == 'c'){mainn();}
              return;

        }

   public static void Scostomer(){
    boolean hasID = false;
        Scanner keyboard = new Scanner(System.in);

        System.out.println("Type in the Id you are search for");

        String customerID = keyboard.nextLine();

        for(int i=0; i&lt;numberOfCustomer; i++){
            if((customerList[i]!=null) &amp;&amp; (customerID.equals(customerList[i].ID))){
                hasID = true;
                printCustomer(customerList[i]);
                i=customerList.length;
            }
        }

        if(!hasID){
            System.out.println("Sorry, customer not found.");
        }
        System.out.println("Would you like to search for another custnomer? (Y or N):");
        String input = keyboard.nextLine();
        char repeat = input.charAt(0);
         if(repeat == 'Y' || repeat == 'y'){Scostomer();} 
            if(repeat == 'N' || repeat == 'n'){Menu();}
                    return;
    }

    public static void main(String arg[]){
        Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter the fileName that contains the data of your customers: ");
        readInCustomer(keyboard.nextLine());
        Menu();
        return;
        }

    public static void mainn(){
        Scanner keyboard = new Scanner(System.in);

            System.out.println("Enter the fileName that contains the data of your customers: ");
        readInCustomer(keyboard.nextLine());
        Menu();
        return;

    }
}
</code></pre>
