Code: //cities.txt kinstown 45000 RoseHall 78000 #### man can 5675 Kinstown RoseHall 564 Uproad Augustine 678 #### import java.io.*; import java.util.*; class City{ private String cityName; private int population; City(String city, int pop){ cityName = city; population = pop; } public String toString(){ String str; str = "cityname " + cityName+"\n"+ "Population " + population+"\n"; return str; } }//end of City class class Distance{ private String c1; private String c2; private int distance; Distance(String cc1, String cc2, int dis){ c1 = cc1; c2 = cc2; distance = dis; } public String toString2(){ String str; str = "cityname " + c1+"\n"+ "cityname 2 " + c2+"\n"+ "Distance " + distance+"\n"; return str; } }//end of Distance class public class As11{ public static void main(String[] args){ City[]citty = new City[16]; Distance[][]distance = new Distance[16][16]; try{ Scanner in = new Scanner (new FileReader("cities.txt")); String x = in.next(); int count = 0; while(!(x.equals("####"))){//Read first part of file into a one dimensional array citty[count] = new City(x,in.nextInt()); count++; x = in.next(); }//end while int i =0; int k = 0; int count2 = 0; String y = in.next(); while(!(y.equals("####"))){// Read second part of file into a two dimensional array. distance[i][k]= new Distance(y, in.next(),in.nextInt()); i++; k++; count2++; y = in.next(); } /* for(int j = 0; j < count; j++){ System.out.println(citty[j].toString()); } */ for(int l = 0; l < distance.length-1; l++){//For loop to print the two dimensional array for (int h = 0; h < distance[l].length; h++){ System.out.println(distance[l][h].toString2());//Error Exception in thread "main" java.lang.NullPointerException at As11.main(As11.java:107) } } in.close(); }catch(IOException e){ System.out.println("File Error"); }//end catch }//end main }//end class //out put cityname man cityname 2 can Distance 5675 Exception in thread "main" java.lang.NullPointerException at As11.main(As11.java:107) Process completed. Problem It prints the first record in the second part of the file then it generates the NullPointerException error. How can I rectity this problem.