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

2022-08-31 14:33:54

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


答案 1

纯 Java

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

System.setIn(new FileInputStream(filename));

请参阅 System.setIn()

Eclipse config

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

Common tab of Launch Configuration dialog


答案 2

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

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

不幸的是,在Eclipse中不可能达到相同的结果,因为在eclipse中没有将stdin绑定到文件的选项。相反,您必须在代码中手动打开文件流,然后从中读取。执行此操作的一种方法是使用程序参数来启用它,并使用另一个程序参数来启用它。请参阅 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。