#java
#java
Вопрос:
Мне нужно перенаправить текстовый файл в качестве входных данных в мою программу, однако я всегда получаю одну и ту же ошибку.
Всякий раз, когда я запускаю код, я вводю имя текстового файла, который он должен использовать, однако всегда появляется одна и та же ошибка.
Вот мой код
public class Test {
public static void main(String[] args) {
int[] vector = new int[200];
for (int l = 0; l < 200; l ) {
vector[l] = StdIn.readInt();
System.out.println(vector[l]);
}
}
}
Я получаю эту ошибку:
Exception in thread "main" java.util.InputMismatchException: attempts to read an 'int' value from standard input, but the next token is "getallen.txt"
Если я что-то пропустил или мне нужно подробнее рассказать о моей проблеме, пожалуйста, сообщите мне.
Комментарии:
1. Можете ли вы поделиться своим полным кодом, который вы опубликовали, выглядит хорошо, но он ничего не делает с чтением ввода файла. При обнаружении ошибки в нем будет целое число, но оно получает gefallen.txt похоже, вы читаете в имени файла? Возможно, это поможет вам stackoverrun.com/de/q/10261897
2. Как вы создали
StdIn
? Я получаюerror: cannot find symbol
, если пытаюсь запустить ваш пример. Пожалуйста, отредактируйте свой пост, чтобы включить детали, необходимые для воспроизведения этой проблемы. Сюда входит образец вашего файла, если вы пытаетесь прочитать его.3. Мне нужно перенаправить текстовый файл в качестве входных данных в мою программу Как вы запускаете его из командной строки?
4. > Как вы запускаете его из командной строки? Я использую intelij для java. Итак, я перейду в view -> tool windows -> terminal, затем я ввожу тест java-introcs. Теперь я набираю: ‘> getallen.txt «.
Ответ №1:
Предполагая, что вы используете стандартную библиотеку Princeton, StdIn.readInt();
будет считываться целое число в соответствии с частью StdIn.read Int() имени метода.
public class Test {
public static void main(String[] args) {
String[] vector = new String[200];
for (int l = 0; l < 200; l ) {
vector[l] = StdIn.readString(); // see edit here
System.out.println(vector[l]);
}
}
}
Вероятно, вы хотите прочитать в a String
, поскольку это то, что вы вводите в консоль терминала. Также вы должны начинать имена классов с заглавных букв по соглашению Java 🙂