Сканер Tricking на вход приходит от пользователя - PullRequest
0 голосов
/ 22 февраля 2019

Я пишу оценочную программу, которая собирается оценивать задания.Мои ученики должны использовать сканер в одном из своих методов.Мой грейдер - это отдельный класс, который вызывает методы учеников.Когда я вызываю метод со Сканером, он предлагает мне ввести некоторые данные (как и должно быть).Я хотел бы, чтобы мой класс оценки мог вызывать метод и автоматически вводить некоторую предопределенную строку, как если бы она была набрана пользователем без остановки или остановки программы.

Есть ли способ сделать это в Java?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете просто заменить System.in собственным потоком ввода, возможно, файлом, содержащим ввод, который вы хотите передать в класс учащегося.

Предполагая, что класс учащегося выглядит следующим образом:

import java.util.Scanner;

public class Student {
    public String prompt() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter some input:");
        return scanner.nextLine();
    }
}

Вы могли бы "оценить" это так:

import java.io.FileInputStream;
import java.io.IOException;

public class Grader {
    public static void main(String[] args) throws IOException {
        System.setIn(new FileInputStream("replies.txt"));
        Student student = new Student();
        String reply = student.prompt();
        assert reply.equals("reply");
    }
}
0 голосов
/ 22 февраля 2019

В качестве альтернативы, вы можете сделать так, чтобы ваши студенты читали в файле.Вы можете сказать всем своим студентам имя входного файла, и когда вы запустите код вашего студента, у вас будет входной файл на вашем компьютере.Студенты могут тестировать свой собственный код с помощью своих собственных тестовых случаев, и когда они отправляют, они изменяют свой код для ввода файла.Вы все еще можете сделать так, чтобы они выводили стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...