What I have written so far works from my current knowledge of basic arrays, but I just don't understand how to use an arraylist, or how to read from a file. What I have written so far works. Any links or advice to help fix my code to read from a file and use an arraylist would be greatly appreciated. Thank you.
public class TestPackages
{
   public static void main (String[] args) 
    {
       Packages testPackages = new Packages();
       testPackages.addPacket(1001, 7.37, "CA");
       testPackages.addPacket(1002, 5.17, "CT");
       testPackages.addPacket(1003, 11.35, "NY");
       testPackages.addPacket(1004, 20.17, "MA" );
       testPackages.addPacket(1005, 9.99, "FL");
       testPackages.addPacket(1006, 14.91, "VT");
       testPackages.addPacket(1007, 4.97, "TX");
       System.out.println(testPackages); 
    }
}
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Packages
{
   private Packet[] shipment;
   private int count;
   private double totalWeight;
   public Packages()
   {
      shipment = new Packet[100];
      count = 0;
      totalWeight = 0.0;
   }
   public void addPacket (int idNumber, double weight, String state)
   {
      if(count == shipment.length)
         increaseSize();
      shipment[count] = new Packet (idNumber, weight, state);
      totalWeight += weight;
      count++;
   }
   public String toString()
   {
      String report;
      report = "All Packets\n";
      for(int num = 0; num < count; num++)
         report += shipment[num].toString() + "\n";
      report += "Total Weight:\t" +totalWeight+" pounds";
      return report;
   }
   private void increaseSize()
   {
      Packet[] temp = new Packet[shipment.length * 2];
      for (int num = 0; num < shipment.length; num++)
         temp[num] = shipment[num];
      shipment = temp;
   } 
}
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
public class Packet
{
   private int idNumber;
   private double weight;
   private String state;
   public Packet(int idNumber, double weight, String state)
   {
      this.idNumber = idNumber;
      this.weight = weight;
      this.state = state;
   }
   public boolean isHeavy(double weight)
   {
      return (weight > 10);
   }
   public boolean isLight(double weight)
   {
      return (weight < 7);
   }
   public String toString()
   {
      String description = "ID number: " + idNumber + "\tWegiht: " + weight + "\tState: " 
      + state;
      return description;
   }
}
 
     
     
     
    