Я пытаюсь прочитать простой текстовый файл со списком книг с названием книги и автором, разделенными знаком «-». С помощью сканера, чтения файлов и пропуска отделите название книги от автора и распечатайте ее. Я не могу понять поток программы на выходе:
import java.io.*;
import java.util.*;
public class FileReaderDemo {
public static void main(String[] args) {
File file = new File("Filepath....>BookList.txt");
Scanner scan = null;
try {
scan = new Scanner(new FileReader(file));
scan.useDelimiter("-");
while(scan.hasNext())
{
System.out.println("Book -> "+scan.next());
scan.skip(scan.delimiter());
System.out.println("Author -> "+scan.next());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
scan.close();
}
}
Текстовый файл содержит следующее:
Harry Potter & Order of Phoenix - J K Rowling
Autobiography of a Yogi - Parmahansa Yoganand
Alice in Wonderland - Lewis Carroll
Результат выглядит следующим образом:
Book -> Harry Potter & Order of Phoenix
Author -> J K Rowling
Autobiography of a Yogi
Book -> Parmahansa Yoganand
Alice in Wonderland
Author -> Lewis Carroll
Что я не могу понять, так это то, что первая книга печатается нормально, как второе название книги печатается без "Book->" или какого-либо оператора println перед ним, а затем снова печатается третья книга и, наконец, автор с последней часть ?