I'm new to java and learning as I go, I'm currently working on arrays, I seem to be at a loss as to what I'm doing wrong here. I do not think it is pulling the data in the correct way, `this program is suppose to read data from a text file, and ask the user for additional inputs, then display a report.` I seem to be having issues with the donation output bits, as I have not gotten it to work once... The program dose compile and run, netbeans says its all green except for the bits of disabled code below for the display method. Any suggestions, comments and points in the right direction are greatly appreciated =)
Also could use some advice on getting the decimal places to line up all together for both the text file output and program display output.

The main class

```
import java.util.Scanner;

public class MyEventManager 
{
    public static void main(String [] args)           
    {
        Scanner keyboard = new Scanner(System.in);
            System.out.printf("\nI will read a text file then add it with user "
                + "inputs in \norder to display and export a report detailing "
                + "an event.\n\n");
        boolean startOver = false;

        if (startOver == false)   //enter loop
        {
            do
            { 
                //ticket price
                System.out.printf("What is the single ticket price for "
                        + "the event? ");
                double singleTicket = keyboard.nextDouble();
                //maximum number of donations
                System.out.printf("What is the maximum number of donations "
                        + "expected for the event? ");
                int maxDonations = keyboard.nextInt();
                //create a new object for event class
                MyEventClass myEvent = new MyEventClass(singleTicket,
                        maxDonations);

                if (myEvent.fruityLoops == false)
                    do
                    {
                        myEvent.readAllData();
                    }
                while (myEvent.fruityLoops != true);

                myEvent.displayResults();

                System.out.printf("\nWould you like to run program again? "
                        + "[Y/N] - ");
                String questionAskLoop = keyboard.next();

                if ("N".equalsIgnoreCase(questionAskLoop))
                {
                    startOver = true; //sets exit condition to end program...
                }
            }
        while(startOver != true);    
        }
    }
}

```

The second class

```
import java.util.Scanner;
import java.io.*;
import java.util.Arrays;

public class MyEventClass 
{
    private final double TICKET_PRICE;
    private final int []moneyDonated;
    private double totalTicketsSold;
    private int DONATION_ARRAY_SIZE;
    private int storedAmountDonations;
    private double moneySpent;
    boolean fruityLoops;
    private boolean donationSuccess;
    public static char amountType;
    public static double amount;

    public MyEventClass (double singleTicket, int maxDonations)
    {
        this.moneyDonated = new int[]{DONATION_ARRAY_SIZE};
        this.fruityLoops = false;
        this.TICKET_PRICE = singleTicket;
        this.DONATION_ARRAY_SIZE = maxDonations;
        this.moneySpent = 0;
    }

    public boolean myDonation (double donationAmount, int[] moneyDonated)
    {
        if (storedAmountDonations  == DONATION_ARRAY_SIZE)
        {
            return false;  
        }
        else
        {
            moneyDonated[storedAmountDonations] = (int) donationAmount;
            storedAmountDonations++;
            return true;
        }
    }

    public void addNewTickets (double addedTickets)
    {  
        totalTicketsSold += (int) addedTickets;
    }

    public double getTicketSales ()
    {  
        return totalTicketsSold;
    }

    public double getTicketEnd ()
    {
        double ticketEnd = totalTicketsSold * TICKET_PRICE;
        return ticketEnd;
    }

    public int [] getMoneyDonated (int[] moneyDonated)
    {
        //Calculate and return the total amount of money donated
        return moneyDonated;
    }

    public int storedAmountDonations ()
    {
        return storedAmountDonations;
    }

    public double getMoneySpent ()
    {
        return moneySpent;
    }

    public void sortMethod (char amountType, double amount)
    {
        if(amount <= 0)     //positive amount check
        {
         throw new IllegalArgumentException("Error Code B-90: Invalid amount "
                 + "(not over 0) -- line: " + amountType + " " + amount 
                 + " ignored");
        }
        else if (amountType == 'T' || amountType == 't')    //tickets
        {
            addNewTickets(amount);
        }
        else if (amountType == 'D' || amountType == 'd')    //donations
        {
            myDonation(amount, moneyDonated);   
            if (donationSuccess == false)    //checks if array is full
            {
                throw new ArrayIndexOutOfBoundsException ("Error code B-103: "
                        + "The array is full " + amount + " will not be stored"
                        + " in the array");
            } 
        }
        else if (amountType == 'E' || amountType == 'e')    //amount spent
        {
           moneySpent += amount;   
        }
        else 
            throw new IllegalArgumentException("Error Code B-113: Invalid item "
                    + "type (not T, D, or E) -- line: " + amountType + " " 
                    + amount + " ignored");
    }

    public void readAllData()
    {
        int lineCount = 0; 
        Scanner keyboard = new Scanner( System.in );
        System.out.printf("\nPlease input the file location: ");
        String readFile = keyboard.next();

        try
        {   
            File inputFile = new File (readFile);
            Scanner scanFile;
            scanFile = new Scanner( inputFile );
            System.out.println("Reading data file....");

            while (scanFile.hasNext())
            {
                amountType = scanFile.next().charAt(0);
                amount = scanFile.nextDouble();

                lineCount++;

                try
                {
                    sortMethod(amountType, amount);
                }
                catch (IllegalArgumentException a)
                {
                    System.out.printf("\nError code B-145: An error occured "
                            + "while attempting to add the data from file");
                }
                catch (ArrayIndexOutOfBoundsException b)
                {
                    System.out.printf("\nError code B-150: An error occured "
                            + "while attempting to add to the array.");
                }
            }
            scanFile.close();
            System.out.printf("\nThe total amount of readable lines where " 
                    + lineCount + " lines.\n\n");
        }
        catch (FileNotFoundException c)
        {
            System.out.printf("\nError code B-160: The file " + readFile
                + " was not found!\n");
            fruityLoops = false;    //restart program
        }
        fruityLoops = true; //contuine on with program
    }

    public int getLowest (int[] moneyDonated)
    {
        int lowValue = moneyDonated[0]; 
        for(int i=1;i < moneyDonated.length;i++)
        { 
            if(moneyDonated[i] < lowValue)
            { 
                lowValue = moneyDonated[i]; 
            } 
        }

        return lowValue; 
    }

    public double getAverage(int[] moneyDonated)
    {
        int sum = moneyDonated[0]; 
        for(int i=1;i < moneyDonated.length;i++)
        sum = sum + moneyDonated[i];

        double advValue = sum / moneyDonated.length;

        return advValue; 
    }

    public int getHighest (int[] moneyDonated)
    {
        int maxValue = moneyDonated[0]; 
            for(int i=1;i < moneyDonated.length;i++)
        { 
            if(moneyDonated[i] > maxValue)
            { 
                maxValue = moneyDonated[i]; 
            } 
        } 

        return maxValue; 
    }

    public void displayResults()
    { 
        double income = 0;//moneyDonated + ticketEnd;
        double profits = income - moneySpent;

        Scanner keyboard = new Scanner ( System.in );
        System.out.printf("\nWhere is the file for the report export? ");
        String reportFile = keyboard.next();

        try
        {
            File outputFile = new File (reportFile);
            Scanner scanFile = new Scanner (outputFile);
            System.out.println("Generating output data file....");
            try (BufferedWriter writer = 
                    new BufferedWriter(new FileWriter(outputFile)))
            {
                writer.write("Event Overall Outcome:");
                writer.newLine();

                writer.write("Ticket Price %15.2f" + TICKET_PRICE);
                writer.newLine();
                writer.newLine();

                writer.write("Donation Analysis:");
                writer.newLine();

                writer.write("Lowest donation " + getLowest (moneyDonated));
                writer.newLine();

                writer.write("Adverage donation " + getAverage (moneyDonated));
                writer.newLine();

                writer.write("Highest donation " + getHighest(moneyDonated));
                writer.newLine();
                writer.newLine();

                writer.write("Profit/Loss Results:");
                writer.newLine();

                writer.write(totalTicketsSold + "Tickets sold" + getTicketEnd());
                writer.newLine();

                writer.write(storedAmountDonations() + " Donations " 
                        + Arrays.toString(moneyDonated) + " +");
                writer.newLine();

                writer.write("                      --------");
                writer.newLine();

                writer.write("Total Income " + "%14.2f" + income);
                writer.newLine();

                writer.write("Total Expenses " + "%12.2f" + " -" + moneySpent);
                writer.newLine();

                writer.write("                      --------");
                writer.newLine();

                if (profits < 1)
                {
                    writer.write("  Event Losses " + "%13.2f " + profits);
                }
                else
                {
                    writer.write("  Event Profits " + "%13.2f " + profits);
                }

                writer.flush();
                writer.close();
            }
            catch (IOException d)
            {
                System.out.printf("\nError code B-280: There was an error "
                        + "while attempting to write to " + reportFile 
                        + "\nThe file may be damaged!");
            }
            System.out.printf("\nOutput Success!");
        }
        catch (FileNotFoundException d)
        {
            System.out.printf("\nError code B-288: The file " + reportFile
                + " could not be opened! The report cannot be generated.\n");   
        }

        System.out.printf("\nEvent Overall Outcome:");

        System.out.printf("\n\n  Ticket Price %15.2f", TICKET_PRICE);

        System.out.printf("\n\n  Donation Analysis: ");
        /*System.out.printf("\n  Lowest donation " + "%10.2f",
        getLowest (moneyDonated));
        System.out.printf("\n  Adverage donation " + "%10.2f",
        getAverage (moneyDonated));
        System.out.printf("\n  Highest donation " + "%10.2f",
        getHighest(moneyDonated));*/

        System.out.printf("\n\n  Profit/Loss Results: ");
        System.out.printf("\n  " + totalTicketsSold + " Tickets sold " 
                /*+ "%3.2f"*/ + getTicketEnd());
        System.out.printf("\n  " + storedAmountDonations() + " Donations " 
                /* + "%3.2f"*/ + Arrays.toString(moneyDonated) + " +");
        System.out.printf("\n                      --------");
        System.out.printf("\n  Total Income " + "%14.2f", income);
        System.out.printf("\n  Total Expenses " + "%12.2f" + " -", moneySpent);
        System.out.printf("\n                      --------");

        if (profits < 1)
        {
            System.out.printf("\n  Event Losses " + "%13.2f \n\n", profits);
        }
        else
        {
            System.out.printf("\n  Event Profits " + "%13.2f \n\n", profits);
        }
    }
}

```

This is the text file input

```
T 25
E 210.99
T 1
D 500.00
E 134.67
D 1

```

This is text file output

```
Event Overall Outcome:
Ticket Price %15.2f60.0

Donation Analysis:
Lowest donation 500
Adverage donation 500.0
Highest donation 500

Profit/Loss Results:
26.0Tickets sold1560.0
1 Donations [500] +
                      --------
Total Income %14.2f0.0
Total Expenses %12.2f -345.65999999999997
                      --------
  Event Losses %13.2f -345.65999999999997

```

And lastly this is what the program displays to the screen...

```
run:

I will read a text file then add it with user inputs in 
order to display and export a report detailing an event.

What is the single ticket price for the event? 25
What is the maximum number of donations expected for the event? 2

Please input the file location: event.txt
Reading data file....

Error code B-150: An error occured while attempting to add to the array.
Error code B-150: An error occured while attempting to add to the array.
The total amount of readable lines where 6 lines.

Where is the file for the report export? export.txt

Error code B-288: The file texport.txt could not be opened! The report 
cannot be generated.

Event Overall Outcome:

  Ticket Price           25.00

  Donation Analysis: 

  Profit/Loss Results: 
  26.0 Tickets sold 650.0
  1 Donations [500] +
                      --------
  Total Income           0.00
  Total Expenses       345.66 -
                      --------
  Event Losses       -345.66 

Would you like to run program again? [Y/N] - 

```

Just as an FYI, for my exception error codes A is the main class and B is the second class, the number the follows is the line of code the message came from. Just something I was trying to help me find my place faster...

My goal is to get the display to look like this.

[![need to look like this.](https://i.stack.imgur.com/w6Qyw.png)](https://i.stack.imgur.com/w6Qyw.png)