Просмотр кода он выглядит следующим образом:.
- Создать сканер для чтения файла в первом аргумент командной строки
- Получить первое число от этого сканера в виде строки
- Разобрать, что строки в Int
отчетливо секвенировали требует файл фр ом первый аргумент, и похоже, что он предназначен.
Создайте файл с именем number.txt:
42
NumberPrinter.java:
import java.io.Scanner;
import java.io.FileReader;
public final class NumberPrinter {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(new FileReader(args[1]));
String numberInFile = scanner.next();
int number = Integer.parseInt(numberInFile);
System.out.println(number);
}
}
Run следующим образом:
java NumberPrinter number.txt
И он будет печатать:
42
В качестве альтернативы, если вы собираетесь разобрать Int непосредственно из параметров командной строки попробовать:
public final class NumberPrinterDirect {
public static void main(String[] args) throws Exception {
int number = Integer.parseInt(args[0]);
System.out.println(number);
}
}
NumberOrFilenameAwkward.java:
import java.io.Scanner;
import java.io.FileReader;
public final class NumberOrFilenameAwkward {
public static void main(String[] args) throws Exception {
int number;
try {
number = Integer.parseInt(args[0]);
} catch (NumberFormatException thisIsVeryUgly) {
Scanner scanner = new Scanner(new FileReader(args[1]));
String numberInFile = scanner.next();
number = Integer.parseInt(numberInFile);
}
System.out.println(number);
}
}
Это ужасное решение и кричит с помощью командной строки, синтаксический библиотеку, например JewelCLI или commons-cli, чтобы решить эту проблему.
Вы получаете «FileNotFoundException», который предполагает, что ваша программа не может найти указанный файл. Сначала я сосредоточусь на решении этой проблемы. – MadProgrammer
Я не уверен, правильно ли я прав, но вы можете просто использовать 'int coup = Integer.parseInt (args [1]);'? – pzaenger
Вы говорите, что текстовый файл читается через 'args [0]', так что вы делаете с 'args [1]'? – Makoto