当前位置:  开发笔记 > 编程语言 > 正文

Eclipse从文件中读取stdin(System.in)

如何解决《Eclipse从文件中读取stdin(System.in)》经验,为你挑选了6个好方法。

Eclipse是否可以从文件中读取stdin?



1> Michael Myer..:

纯Java

您可以使用一行代码重定向System.in:

System.setIn(new FileInputStream(filename));

请参见System.setIn().

Eclipse配置

在Eclipse 4.5或更高版本中,启动配置对话框可以将System.in设置为从文件中读取.请参阅此处的公告.

启动配置对话框的常用选项卡



2> lanoxx..:

[更新]正如评论中指出的那样,这个答案有误导性,所以我更新了它以纠正错误.[/更新]

在bash或命令提示符下,您可以执行以下操作: C:\myprogramm < file.txt(Windows)或./myprogramm < file.txt (Linux)

不幸的是,在Eclipse中不可能实现相同的结果,因为没有选项将stdin绑定到eclipse中的文件.相反,您必须在代码中手动打开文件流,然后从中读取.一种方法是使用程序参数启用它,另一个使用file参数.请参阅Scott的答案,了解需要添加哪种代码来解析程序参数数组中的-d选项.

当您想要指向Eclipse项目中的某个文件时,您需要小心地获取正确的位置并使用$ {resource_loc:}变量:

-d ${resource_loc:/MyProject/file}

当然你也可以放一条绝对路径:

-d path/to/file or -d C:\path\to\file

resource_loc参数指向您的工作区.这是存储所有eclipse项目的文件夹.从那里你仍然需要引用你的项目文件夹,然后是你想要加载的文件.

您可能需要调整斜杠方向,具体取决于您使用Linux还是Winodws.


运行配置 - >参数中的'-d'选项似乎不起作用.至少在Eclipse 3.7.1中没有
这个答案与std.in无关.它教您打开文件而不是读取std.in. 为什么错误和误导性的答案会收到这么多的赞成?

3> Petr Janeček..:
2015年更新

有一个新的Eclipse版本Eclipse 4.5(Mars)修复了这个问题!

这是该功能的公告和说明:http://eclipse.org/mars/noteworthy/#_assigning_stdin_to_a_file

现在可以将Stdin分配给启动配置对话框的" 公用"选项卡中的文件. 在此输入图像描述

正如所料,这是刚刚发布的eclipse 4.5的一个新功能,因此不适用于旧版本.


这是正确的答案 - 只要你住在2015年:)

4> John Gardner..:

在运行对话框的"公共"选项卡上,在"标准输入和输出"下面有一个"文件"复选框.但它似乎只是为了输出......

我希望在那里看到2个文件字段,一个用于标准输入,一个用于标准输出和附加选项.



5> Scott..:

您将需要调整一些代码以使其在eclipse中工作.当我尝试时,上面的其他答案不起作用.另一个我见过要更改Run ..> Common选项卡> Standard Input and Output> File只将stdout行为更改为文件,而不是输入.

解决方案是将"-d"选项用于可行的解决方案.如果你在程序参数中放入任何东西,它就会被传递到你的main中.那么你在main的开头可以做的是这样的:

    Scanner in;
    if (args!=null && args.length>0 && args[0].equals("-d")){
        in = new Scanner(new File(args[1]));
    } else {
        in = new Scanner(System.in);
    }

您仍然需要在Run ..菜单中设置程序参数,如本答案中所述.



6> 小智..:

对我来说(在Mac上运行,使用Eclipse CDT作为C应用程序)的解决方案是在"运行配置"对话框的"参数"选项卡中的其他参数的末尾添加"

另请查看另一个问题,以获得有关在挂起状态下启动Java程序然后使用Eclipse附加调试器的答案.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有