java - 文件内容重定向到 args 不起作用

标签 java redirect console pipeline args

我正在测试需要在 Java 学校项目中实现的一小段代码。

public class Prova {
    public static void main(String[] args){
       System.out.println(args.length);

       for(int i = 0; i < args.length; i++){
           System.out.print(args[i]);
       }

       System.out.print("\nEnd!");
    }
}

当我在控制台输入java Prova < test.dot时而 test.dot 的内容文件是:

digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}

我刚刚得到这个:

C:\Users\Lorenzo\workspace\Progetto_ASD\bin>java Prova < test.dot
0

End!

我尝试过java Prova > output.txt只是为了看看管道是否工作并且它确实工作(我得到与上面相同的结果,但在一个文件中)。

如果我尝试 type test.dot我得到:

C:\Users\Lorenzo\workspace\Progetto_ASD\bin>type test.dot
digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}

正如我所料。

我真的不知道我正在做的事情出了什么问题(顺便说一句,我正在使用 Windows)。

最佳答案

您正在混合两种不同的方法:

  1. args

    您应该将程序运行为 java Prova arg1 arg2 ... argn :

    java Prova "digraph G1 {" "c -> e;" "a -> e;" "a -> f;" "f -> b;" g; }

    也许你想改变

    System.out.print(args[i]);
    

    System.out.println(args[i]);
    

    有 7 条不同的线路。

  2. 重定向

    这相当于一个接受您键盘输入的程序。您可以将程序更改为如下所示:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Prova {
        public static void main(String[] args) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String line;
            try {
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    然后调用

    java Prova < test.dot.

关于java - 文件内容重定向到 args 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40440375/

相关文章:

c - 如何在 unix/posix 中清除(重置)屏幕? (不是诅咒/换行符)

JavaScript 控制台日志在 if 语句评估为 false 后自行清除

java - 使用 JSoup 从网站源代码中提取 JavaScript 行

java - 如何在 aws s3 sdk java 2.0 中启用强制全局存储桶访问?

jquery - Jquery 动画后重定向

java - 301 重定向 : Why connection close?

调用直接 url 路径时,Angular 4 路由不起作用

java - 使用@OneToMany时JPA结果无限循环

java - 尝试使用tomcat注销时出现Http 500错误

console - 如何从另一台机器的命令行访问 VM 控制台