Анализ текстового файла с использованием JavaufferedReader и ScannerJAVA

Программисты JAVA общаются здесь
Anonymous
Анализ текстового файла с использованием JavaufferedReader и Scanner

Сообщение Anonymous »

У меня есть следующий файл конфигурации, который я пытаюсь использовать для установки глобальных переменных в моей программе

Код: Выделить всё

OUTPUT_FILE_PATH = filename2.txt
MAX_CRAWL_DEPTH = 2
NUMBER OF CRAWLERS = 10
SEED_URL = https://www.lehigh.edu/home
DOMAIN = lehigh.edu
DELAY = 10
Чтобы проанализировать этот текстовый файл, я использую это

Код: Выделить всё

String line = "";
BufferedReader buffRead = new BufferedReader(new FileReader((CONFIG_FILE_PATH)));
Scanner charlie = new Scanner(line);

String varName;
while ((line = buffRead.readLine()) != null){
System.out.println(line);
charlie.useDelimiter(" = ");
varName = charlie.next();
System.out.println(varName);

if (varName == "OUTPUT_FILE_PATH")
OUTPUT_FILE_PATH = charlie.next();
else if (varName == "MAX_CRAWL_DEPTH")
MAX_CRAWL_DEPTH = charlie.nextInt();
else if (varName == "NUMBER_OF_CRAWLERS")
NUMBER_OF_CRAWLERS = charlie.nextInt();
else if (varName == "SEED_URL")
SEED_URL = charlie.next();
else if (varName == "DOMAIN")
DOMAIN = charlie.next();
else if (varName == "DELAY")
delay = charlie.nextInt();
}
Я получаю этот вывод при запуске кода

Код: Выделить всё

OUTPUT_FILE_PATH = filename2.txt
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at Globals.setGlobals(Globals.java:44)
В строке 44 я установил varName = charlie.next();
Есть ли причина, почему это неправильно? Есть ли еще какие-нибудь советы о том, как разобрать этот файл? Я чувствую, что мои операторы if — не лучший способ сделать это.

Вернуться в «JAVA»