我正在尝试使用文件重定向来运行 Java 程序。我正在用这个简单的程序测试它:
package netbeans.sanbdox;
public class Sanbdox {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
当我进入命令行并运行时
$ java -jar dist/compiled_project.jar < q1.txt
$
尽管没有输出q1.txt
不是一个空文件。我应该怎么做才能使文件重定向起作用?
以这种形式重定向只是替换stdin
来自该文件的文件流。你的代码没有使用stdin
对于任何东西,因此您不会有任何输出,因为您没有向程序传递任何命令行参数。
要查看您的期望,您必须使用Scanner
:
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close(); // Not required for stdin but good practice
如果您真正想要的是将文件中的每个标记作为命令行参数提供,您可以在 shell 中执行以下操作:
$ java -jar dist/compiled_project.jar $(cat q1.txt)
这将输出的内容q1.txt
作为 shell 命令的一部分。由于换行符或其他问题,它很可能无法按您想要的方式工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)