如何在标准输入上运行程序?

时间:2018-09-07 14:24:49

标签: java java.util.scanner stdin

我已经创建了一个Sokoban-solver的实现,并且代码目前看起来像这样(不会发布所有代码):

public Sokoban() throws Exception{
myList = new ArrayList<Integer>();

file = new File("C:/Users/joaki/Desktop/sokoban/readin.txt");
sc = new Scanner(file);
sc.reset();
List<String> lines = new ArrayList<>();
while (sc.hasNextLine()) {
    line = sc.nextLine();

如您所见,我只是使用文件路径来使用扫描仪读取文件,但是根据我的分配,它应该看起来像:

  

如果“ map1.txt”是带有推箱子地图的文件,   代理程序“ agent”将通过标准输入将map1.txt发送到。   在unix / linux下,这相当于运行程序,如

     

agent < map1.txt

我真的不明白它们是什么意思,我应该从命令行参数还是从cmd运行程序?

2 个答案:

答案 0 :(得分:2)

它应该从用户输入中读取文件,而不是从程序读取文件-是的,您应该从命令行运行该程序。这意味着您的程序应该从System.in获取输入,而不是直接打开文件:

sc = new Scanner(System.in);

答案 1 :(得分:2)

在创建Scanner时,请使用以下方法:

sc = new Scanner(System.in);

它将告诉扫描仪从默认输入中读取。