java - 从命令行 java 读取标准输入和参数

标签 java

运行 java 文件时,我在从命令行读取参数和标准输入时遇到问题。我可以单独读取参数,也可以单独读取标准输入,但不能一起读取;例如:

java myFile 6 2 < numbers.txt

我可以让它将 6 和 2 存储在数组中,但它也只存储“<”和“text.txt”。我无法在网上找到任何描述类似问题的内容,因此不确定从哪里开始。

最佳答案

命令行参数在 String[] 中接收main 的类型参数方法。输入重定向的完成方式与在命令行调用的任何其他进程相同。可以通过读取 stdin 来检索字节直到EOF已达到。

命令:java myClass myArg < myFile

public static void main(String[] args)
{
    System.out.println("Arg 1 = " + args[0] + "\nStdin = ");
    try (InputStreamReader isr = new InputStreamReader(System.in)) {
        int ch;
        while((ch = isr.read()) != -1)
            System.out.print((char)ch);
    }catch(IOException e) {
        e.printStackTrace();
    }
}

了解更多信息:

http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html http://docs.oracle.com/javase/tutorial/essential/io/cl.html

关于java - 从命令行 java 读取标准输入和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194057/

相关文章:

java - Java 中 Thrift 的异步请求

java - 如何将 Bolt 驱动程序与 Spring Boot/Data Neo4j 一起使用

java - 从 Tomcat 5.0.27 升级到 Tomcat 7.0.30 后无法访问数据库

java - 连接暂停后的 GoogleApiClient 重新连接策略是什么?

java - imagebutton 设置图像大小

java - Swing 屏幕键盘

java - 为什么这段代码一直显示错误

java - Spring Security @PreAuthorize 基于自定义 boolean 属性值

java - 使用 JPA 注释自动从父项中删除子项,从子项中自动删除父项

java - 有没有办法在 Eclipse 中查看类方法的列表及其长度(行数)?