Hi guys with this code I write and read to files. But it only allows me to add two records to the text file, after that the input I write into the file does not appear in the text file.

Java Code:
import java.util.Arrays;
import java.util.Scanner;
import java.io.*;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class sample2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final int MAX_AMOUNT = 500;
		final String DELIMITER = "~";
		String[] firstName = new String[MAX_AMOUNT ];
		String[] lastName = new String[MAX_AMOUNT ];
		String[] carReg = new String[MAX_AMOUNT ];
		int[] age = new int[MAX_AMOUNT ];
		double[] totalPremium = new double[MAX_AMOUNT ];
		boolean[] penaltyPoints = new boolean[MAX_AMOUNT ];
		boolean[] fullLicenceHolder = new boolean[MAX_AMOUNT ];
		Scanner kb = new Scanner(System.in);


		System.out.println("----------------------------------");
		System.out.println("Welcome to uSaveCarInsurace.\n");
		System.out.println("----------------------------------");
		boolean exit = true;

		while (exit) {
			System.out.println("Choose an option: \n1. Get Quote\n2. Administrator\n3. Exit");
			int menuChoice= kb.nextInt();
			if (menuChoice == 1) {

				quote(kb, firstName, lastName, carReg, age, totalPremium, DELIMITER, penaltyPoints,fullLicenceHolder);

				logFile(carReg,firstName,lastName, age, totalPremium,DELIMITER, penaltyPoints,
						fullLicenceHolder );

				exit = false;
			} else if (menuChoice == 2){

				readFile(kb,DELIMITER,firstName,carReg,lastName);

			}
			else if (menuChoice == 3){

				System.out.println("Good Bye");
				exit = false;
			}
			else
				System.out.println("Invalid entry, try again...");
		}


	}

	public static String quote(Scanner kb, String[] firstName,
			String[] lastName, String[] carReg, int[] age,
			double[] totalPremium, String DELIMITER, boolean[] penaltyPoints,
			boolean[] fullLicenceHolder) {
		String inputFirstName = "";
		String inputLastName = "";
		String inputCarReg = "";
		int numberOfPoints = 0;
		String penaltyPointChoice = "";
		String fullLicenceChoice = "";
		int counterIndex = 0;
		try {

			File customers = new File("QuoteDetails.txt");

			if (!customers.exists()) {
				customers.createNewFile();
			}

			FileWriter fWriter = new FileWriter(customers);
			BufferedWriter bWriter = new BufferedWriter(fWriter);
			FileReader fReader = new FileReader(customers);
			BufferedReader bReader = new BufferedReader(fReader);

			// do {
			String record = null;
			while ((record = bReader.readLine()) != null) {
				String[] fields = record.split(DELIMITER);
				// boolean[] fields2 = record.split(DELIMITER);

				while ((record = bReader.readLine()) != null) {
					firstName[counterIndex] = fields[0];
					lastName[counterIndex] = fields[1];
					carReg[counterIndex] = fields[2];
					age[counterIndex] = Integer.parseInt(fields[3]);
					fullLicenceHolder[counterIndex] = Boolean
							.parseBoolean(fields[4]);
					penaltyPoints[counterIndex] = Boolean
							.parseBoolean(fields[5]);
					counterIndex++;
				}
			}
			firstName[counterIndex] = userFirstName(kb, inputFirstName);
			lastName[counterIndex] = userLastName(kb, inputLastName);
			carReg[counterIndex] = userCarReg(kb, inputCarReg);
			age[counterIndex] = userAge(kb);
			// int usersAge= age[counterIndex];
			int penaltyPointCount = penaltyPointCheck(kb, penaltyPointChoice,
					numberOfPoints);
			if (penaltyPointCount > 0) {
				penaltyPoints[counterIndex] = true;
				// System.out.println("u got points");
			}
			String isFullLicence = fullLicenceCheck(kb, fullLicenceChoice,
					numberOfPoints);
			if (isFullLicence.equalsIgnoreCase("y")) {
				fullLicenceHolder[counterIndex] = true;
				System.out.println("How many years?");
				int yearsWithLicence = kb.nextInt();
			}

			else if (isFullLicence.equalsIgnoreCase("n")) {
				fullLicenceHolder[counterIndex] = false;

			}
			totalPremium[counterIndex] = calculations(age[counterIndex],
					penaltyPointCount);
			// }while (inputFirstName.isEmpty());

			// carType(kb, carReg, inputCarReg);

			bWriter.write(firstName[counterIndex] + DELIMITER
					+ lastName[counterIndex] + DELIMITER + carReg[counterIndex]
							+ DELIMITER);

			bWriter.flush();
			bWriter.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
		return firstName[counterIndex];

	}

	public static String userFirstName(Scanner kb, String inputFirstName) {
		System.out.println("Please enter your First Name");
		while (kb.hasNextInt() || kb.hasNextFloat() || kb.hasNextDouble()) {
			inputFirstName = kb.next();
			System.out.println("Name must contain letters only.");
		}
		inputFirstName = kb.next();
		return inputFirstName;
	}

	public static String userLastName(Scanner kb, String inputLastName) {
		do {
			System.out.println("\nPlease enter your Last Name");
			while (kb.hasNextInt() || kb.hasNextFloat() || kb.hasNextDouble()) {
				kb.next();
				System.out.println("Name must contain letters only.");
			}
			inputLastName = kb.next();
		} while (inputLastName.length() == 0);
		return inputLastName;
	}

	public static String userCarReg(Scanner kb, String inputCarReg) {
		do {
			System.out.println("\nPlease enter your car reg in format 98-");
			while (kb.hasNextInt() || kb.hasNextFloat() || kb.hasNextDouble()) {
				kb.nextLine();
				System.out.println("please enter car reg.");
			}
			inputCarReg = kb.next();
		} while (inputCarReg.isEmpty());
		return inputCarReg;
	}

	public static int userAge(Scanner kb) {
		int inputAge = 0;
		do {
			System.out.println("\nPlease enter your age");
			while (!kb.hasNextInt()) {
				kb.next();
				System.out.println("enter Age");
			}
			inputAge = kb.nextInt();
		} while (inputAge <= 0 || inputAge > 90);
		return inputAge;
	}

	public static int penaltyPointCheck(Scanner kb, String penaltyPointChoice,
			int numberOfPoints) {
		do {
			System.out.println("Do you have penalty points?");
			penaltyPointChoice = kb.next();
			// while (!penaltyPointChoice.equalsIgnoreCase("y") ||
			// !penaltyPointChoice.equalsIgnoreCase("n"));
			if (penaltyPointChoice.equalsIgnoreCase("y")) {
				System.out.println("How many?");
				numberOfPoints = kb.nextInt();
			}
		} while (penaltyPointChoice.isEmpty());
		return numberOfPoints;
	}

	public static String fullLicenceCheck(Scanner kb, String fullLicenceChoice,
			int numberOfPoints) {
		do {
			System.out.println("Do you have a full licence?");
			fullLicenceChoice = kb.next();
			// while (!penaltyPointChoice.equalsIgnoreCase("y") ||
			// !penaltyPointChoice.equalsIgnoreCase("n"));

		} while (fullLicenceChoice.isEmpty());
		return fullLicenceChoice;
	}

	public static double calculations(int userAge, int penaltyPointCount) {
		double flatPremium = 500.50;
		System.out.println(userAge);

		if (userAge < 21) {
			flatPremium += 700;
			if (penaltyPointCount > 4) {
				flatPremium += 1000;
			}
			System.out.println(penaltyPointCount + "********" + flatPremium);
			// if(numberOfPoints>4) {

			// if(yearsWithLicence<1){
			// }
			// }
		} else if (userAge >= 22 && userAge < 25) {
			flatPremium += 900;
			System.out.println(flatPremium);
			if (penaltyPointCount > 4) {

				// if(yearsWithLicence<1){
				// }
			}
		} else if (userAge >= 26 && userAge < 30) {

			flatPremium += 100;
			System.out.println(flatPremium);
		}

		else {

			flatPremium += 20;
			System.out.println(flatPremium);
		}
		return flatPremium;
	}

	public static void logFile(String[] carReg, String[] firstName, String[] lastName,
			 int[] age, double[] totalPremium,
			String DELIMITER, boolean[] penaltyPoints,
			boolean[] fullLicenceHolder) {
		try {

			File log = new File("Logfile.txt");
			int logCounterIndex = 0;
			if (!log.exists()) {
				log.createNewFile();
			}
			DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy/HH:mm:ss");
			Date date = new Date();
			FileWriter fWriter = new FileWriter(log, true);
			BufferedWriter bWriter = new BufferedWriter(fWriter);
			FileReader fReader = new FileReader(log);
			BufferedReader bReader = new BufferedReader(fReader);

			String record = null;
			while ((record = bReader.readLine()) != null) {
				String[] fields = record.split(DELIMITER);
				// boolean[] fields2 = record.split(DELIMITER);

				while ((record = bReader.readLine()) != null) {
					firstName[logCounterIndex] = fields[0];
					lastName[logCounterIndex] = fields[1];
					carReg[logCounterIndex] = fields[2];
					//age[logCounterIndex] = Integer.parseInt(fields[3]);
					fullLicenceHolder[logCounterIndex] = Boolean
							.parseBoolean(fields[3]);
					penaltyPoints[logCounterIndex] = Boolean
							.parseBoolean(fields[4]);
					logCounterIndex++;
				}
				
			}
			bWriter.write(carReg[logCounterIndex] + DELIMITER
					+ firstName[logCounterIndex] + DELIMITER
					+ lastName[logCounterIndex] + DELIMITER
					+ age[logCounterIndex] + DELIMITER
					+ fullLicenceHolder[logCounterIndex] + DELIMITER
					+ totalPremium[logCounterIndex] + DELIMITER
					+ dateFormat.format(date));
			bWriter.newLine();
			bWriter.flush();
			bWriter.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/*public static void readInRegistered(String FILE_PATH_REGISTERED, String DELIMITER, String[] userId, String[] password) {
                       BufferedReader bReader = null;
               try {
                           File registered = new File(FILE_PATH_REGISTERED);
                          if (!registered.exists()) {
                                 registered.createNewFile();
                          }
                           FileReader fReader = new FileReader(registered);
                           bReader = new BufferedReader(fReader);

                           int registeredIndex = 0;
                           String record = null;
                           while ((record = bReader.readLine()) != null) {
                                  String[] fields = record.split(DELIMITER);
                                  userId[registeredIndex] = fields[0];
                                  password[registeredIndex] = fields[1];
                                  registeredIndex++;
                           }
               } catch (IOException e) {
                                       e.printStackTrace();
                               }
               }*/
	public static void readFile(Scanner kb,String DELIMITER, String[] firstName,String[] lastName,
			String[] carReg) {
		String carRegistration="";
		int registeredIndex = 0;
		try {
			File f = new File("Logfile.txt");
			FileReader fr = new FileReader(f);
			BufferedReader br = new BufferedReader(fr);

			String record = null;
			while ((record = br.readLine()) != null) {
				String[] fields = record.split(DELIMITER);
				
				carReg[registeredIndex] = fields[0];
				firstName[registeredIndex] = fields[1];
				lastName[registeredIndex] = fields[2];
				registeredIndex++;
				System.out.println("enter car registration");
				carRegistration = kb.next();
				boolean Isfound = false;
				int index = 0;
		
				while (!Isfound && index <carReg.length) {
					if (carRegistration.equals (carReg[index])) {
						Isfound = true;
						System.out.println((carReg[index])+ "The policy holders name is: "+firstName[index]+" "+lastName[index]);
					}
					index++;
				}

				if (!Isfound) {
					System.out.println(	carRegistration+ " Is not in the list");
				}
				
				
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		}
	}