public FileOperations() throws FileNotFoundException
    {    
    	reader = new BufferedReader(new InputStreamReader(System.in));
    	System.out.println("Please enter the name of the graph file including the extension.");
    	System.out.println("E.g. file175.txt");
    	fileChoice = "Graph Files/";
    	try
    	{
    		fileChoice += reader.readLine();
    	}
    	catch(IOException e)
		{
			System.out.println("Client Input Error");
		}
    	
    	System.out.println("Now please enter either: A*, Hill Climbing or Greedy Best First");
    	try
    	{
    		algorithmChoice = reader.readLine();
    	}
    	catch(IOException e)
		{
			System.out.println("Client Input Error");
		}
    	if(!algorithmChoice.equals("A*") && !algorithmChoice.equals("Hill Climbing") && !algorithmChoice.equals("Greedy Best First"))
    	{
    		System.out.println("Your algorithm choice was invalid. Please re-run the application");
    		System.exit(-1);
    	}
        fFile = new File(fileChoice);
        Scanner scanner = new Scanner(fFile);       
        read = scanner.nextLine();
        String[] temp = read.split("[NAME =,]+");
        fileName = temp[1];
        
        read = scanner.nextLine();
        temp = read.split("[SIZE =h,]+");
        caseSize = Integer.parseInt(temp[1]);
        count = 0;
        count2 = 1;
        vertexCount = 0;   
        temp2 = vertexCount + 1;
        addVertices();     
        vertices = graph.getVertices();
        try
        {
        	while (scanner.hasNextLine())
            {
        		processLine(scanner.nextLine());
            }
        }
        finally
        {
        	scanner.close();
        }
        if(algorithmChoice.equals("A*"))
        	new AStar(graph, caseSize, fileName);
        else
        	if(algorithmChoice.equals("Hill Climbing"))
        		new HillClimbing(graph, caseSize, fileName);
        	else
        		new GreedyBestFirst(graph, caseSize, fileName);
    }