Итак, я пытаюсь прочитать содержимое файла .csv с помощью сканера, и каждый раз, когда я получаю сообщение об ошибке, говорится в заголовке.
Сначала я прочитал в Интернете, что это произошло из-за тот факт, что в вашем проекте не должно быть более одного экземпляра сканера, потому что они могут потреблять входные данные, поэтому я использовал BufferedReader для сканирования по выбору пользователя и сканер для открытия файла .csv.
Теперь я снова получаю сообщение об ошибке, имея только один экземпляр сканера, и я не знаю, почему это происходит.
Вопрос.java
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Question {
public static void menu() {
System.out.println("\nEnter your choice :\n");
System.out.println("1 - Load Hotels and Reservations from file");
System.out.println("\nEnter \"1\"");
int choice = 1;
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(System.in));
choice = Integer.parseInt(br.readLine());
} catch (IOException ioe) {
ioe.printStackTrace();
}
if (choice == 1)
loadOption();
}
public static void loadOption() {
Scanner scan;
ArrayList<Hotel> hotel = new ArrayList();
try {
Hotel hotel = new Hotel();
scan = new Scanner(new File("data1.csv"));
scan.useDelimiter(";");
int column = 1;
while (scan.hasNext()) {
scan.next();
if (column == 1)
hotel.id = scan.next();
if (column == 2)
hotel.name = scan.next();
if (column == 3)
hotel.star = scan.next();
if (column == 4)
hotel.rooms = scan.next();
}
System.out.print("Files Succesfully Loaded!!!\n");
scan.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Question obj = new Question();
obj.menu();
}
};
Hotel.java
public class Hotel extends Question {
String id, star, rooms, name;
public Hotel() {
} // constructor
};
Вот как я их компилирую:
javac Hotel.java
javac Question.java
java Question
Точная ошибка выглядит так:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at Question.loadOption(Question.java:43)
at Question.menu(Question.java:27)
at Question.main(Question.java:62)