import java.io.*;
import simpleIO.Reader;

public class CityTemps
{
    public static void main (String [] args)
    {
        City ourCity = new City ();
        ourCity.readTemps ();
        ourCity.displayTemps ();
        ourCity.storeTemps ();
    }
} // class CityTemps

class City
{
    private final int maxSize = 20;
    private int [] highTemps, lowTemps;
    private int listSize;

    City ()
    {
        listSize = 0;
        highTemps = new int [maxSize];
        lowTemps = new int [maxSize];
    } // constructor

    public void readTemps ()
    {
        System.out.print ("File Name: ");
        String fileName = Reader.readString ();
        try
        {
            BufferedReader infile = new BufferedReader
                (new InputStreamReader (new FileInputStream (fileName)));
            int count = 0;
            String highString = infile.readLine ();
            while (highString != null)
            {
                highTemps [count] = Integer.parseInt (highString);
                lowTemps [count] = Integer.parseInt (infile.readLine ());
                count ++;
                highString = infile.readLine ();
            } // while
            listSize = count;
            infile.close ();
        } catch (IOException e)
        { System.out.println ("File not found.");};
    } // method readTemps

    private int calculateAverage (int high, int low)
    {
        return (high + low) / 2;
    } // method calculateAverage

    public void displayTemps ()
    {
        System.out.println ("The city\'s temperatures.");
        for (int count = 0; count < listSize; count++)
        {
            int average = calculateAverage (highTemps [count], lowTemps [count]);
            System.out.println ("High: " + highTemps [count] + " Low: " + lowTemps [count]
                + " Average: " + average);
        }
    } // method displayTemps

    public void storeTemps ()
    {
        System.out.print ("File Name: ");
        String fileName2 = Reader.readString ();
        try
        {
            PrintWriter outfile = new PrintWriter (new FileWriter (fileName2));
            for (int count = 0; count < listSize; count++)
            {
                int average = calculateAverage (highTemps [count], lowTemps [count]);
                outfile.println (highTemps [count]);
                outfile.println (lowTemps [count]);
                outfile.println (average);
            }
            outfile.close ();
        } catch (IOException e) {}
    } // method storeTemps

} // class City