i would create a class Hurricane that holds all your hurricane fields and then inside the main-method i would declare an list of arrays like ArrayList<Hurricane) hurricanes = new ArrayList<Hurricane>(); each time your read a hurricane record assign the data to the fields and then use the add-method of the ArrayList to add the record in your collection. the ArrayList has also a method size() that returns the number of elements in the list. so you don't have to iterate twice over your data file. the class Hurricane could also overwrite the toString method that returns your format string. ok, this is up to you.
i hope, this piece of code give you an idea how you could resolve your initial question:
for (int i = 0; i < years.length; i++) {
System.out.printf("%1d %13s %5s %14d %18.0f\n", years[i], name[i],
category[i], pressure[i], wind[i]);
}
i used a different approach to print all your elements, assuming that all years have all datas needed. if you change your data structure to an ArrayList then also the loop must change. have fun.