По умолчанию Сканер использует "" в качестве разделителя.Вы ожидаете, что sc.next()
вернет полную строку.Поэтому вам нужно установить EOL в качестве разделителя:
sc.useDelimiter(System.getProperty("line.separator"));
Это может помочь поместить выходной файл sc.next () в строковую переменную и распечатать его, чтобы убедиться, что он возвращает то, что вы ожидаете:
sc.useDelimiter(System.getProperty("line.separator"));
while(sc.hasNext()) {
String line=sc.next();
String [] fields = line.split(";");
System.out.println(fields[4]);
}