欺骗扫描仪输入来自用户



我正在编写一个将要进行分级分配的评分程序。我的学生必须在其中一种方法中使用扫描仪。我的分级器是一个单独的课程,称学生的方法。当我使用扫描仪调用该方法时,它会提示我输入一些输入(如该输入)。我希望我的等级课能够调用该方法并自动输入一些预定的字符串,就好像用户在没有程序停止或暂停的情况下输入了一些预定字符串。

有什么方法在Java中如何做?

预先感谢您。

您可以简单地用自己的输入流替换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");
    }
}

另外,您可以让学生阅读文件输入。您可以告诉所有学生输入文件的名称,当您运行学生代码时,您的计算机上有输入文件。学生可以使用自己的测试用例测试自己的代码,当他们提交时,他们将代码更改为文件输入。您仍然可以让它们输出标准输出。

相关内容

最新更新