Мой код такой:
public static void main(String args[]) throws IOException
{
String name;
int population;
String[] tokens;
FileReader fin = new FileReader("Test.txt");
Scanner src = new Scanner(fin);
src.useDelimiter(",");
while (src.hasNextLine())
{
if (src.hasNext())
{
tokens = src.nextLine().split(",\\s");
name = tokens[0];
population = Integer.parseInt(tokens[1].trim());
System.out.printf("Name:%-15s %-15d\n", name, population);
} else
{
String str = src.next();
if (str.equals(""))
{
break;
} else
{
System.out.println("File format error.");
return;
}
}
}
System.out.println("end");
fin.close();
}
В моем тестовом файле у меня просто есть имя состояния, за которым следуют запятая, пробел, совокупность и, возможно, случайный пробел после совокупности.Мои результаты выводятся как
..... Имя: Вирджиния 7100702
Имя: Вашингтон 5908684
Имя: Западная Вирджиния 1813077
Имя: Висконсин 5371210
Имя: Вайоминг495304
Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 1 at javatesters.JavaTesters.main (JavaTesters.java:35) Результат Java: 1 BUILD SUCCESSFUL (общее время: 0 секунд)
Конец моего тестового файла
Вирджиния 7100702
Вашингтон 5908684
Западная Вирджиния 1813077
Висконсин 5371210
Вайоминг 495304
Общая численность населения281424177 435
И я хочу, чтобы в пустой строке указывался конец файла