当前位置: 首页 > 面试题库 >

Java中的命令行管道输入

邵锐
2023-03-14
问题内容

这是一段简单的代码:

import java.io.*;
public class Read {
 public static void main(String[] args) {
     BufferedReader f = new BufferedReader(new InputStreamReader(System.in));
  while(true)
  {
   String x = null;
   try{
    x = f.readLine();
   }
   catch (IOException e) {e.printStackTrace();}
   System.out.println(x);
  }
 }
}

我将其执行为:java Read <input.txt

一旦将input.txt完全传递到程序中,x就会保持无限的null。为什么呢?有没有办法在将文件输入代码后使标准输入(命令行)活动?我尝试关闭流并重新打开,但它不起作用。重置等。


问题答案:

通过执行操作,"java Read < input.txt"您已经告诉操作系统,对于此过程,管道文件
标准文件。您不能再从应用程序内部切换回命令行。

如果要这样做,则将input.txt作为文件名参数传递给应用程序,然后从应用程序内部自己打开/读取/关闭文件,然后从标准输入中读取内容以从命令行获取内容。



 类似资料:
  • 我试图使用Java的类来执行包含管道的命令。例如: 然而,我得到了一个错误: 然后: 尽管该命令在命令行中运行得很好,但我无法让执行将其输出重定向到另一个的命令。 有没有办法做到这一点?

  • 问题内容: 我必须 在ant中执行command:所以我尝试了这个任务: 但是我对管道有个异议-“ |” : 所以,这就是问题所在:) 问题答案: 管道(|)仅可用于Shell脚本。您将其作为参数传递给Java进程。 因此,您需要执行一个Shell脚本。您可以通过执行(说)并将上面的内容作为shell语句传递来做到这一点(尽管是 内联的 ,您可以编写一个单独的脚本文件,但这似乎有点麻烦)

  • 本文向大家介绍CMD命令行管道命令使用介绍,包括了CMD命令行管道命令使用介绍的使用技巧和注意事项,需要的朋友参考一下 一、什么是管道命令   管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。   如 dir 命令会显示目录下所有文件夹和文件,可以使用管道命令| findstr "" 将dir的结果进行筛选,只保留需要的信息 | 命令管道符 格式:第一条命令 | 第二条命令 [|

  • 问题内容: 我想知道是否有一种方法可以在Go中运行一定的时间,然后在从通道接收到值后将其杀死。在似乎不支持命令管道。谢谢。 问题答案: 这是我的管道示例,通过OS Std Pipe归档一个调用文件b,您可以对其进行编辑并添加计时器以执行所需的操作。 文件b:

  • 我想通过管道传输我的hadoop流作业。例如,我运行了一个命令hadoop jarhadoop-streaming.jar-mappermap1.pyreducer.py-inputxx输出 /output1 但是我想使用第一步的输出作为第二步mapduce作业的输入,而不存储在hdfs中,也许输出为标准输出。有没有像linux管道一样的东西?比如hadoop jarhadoop-streamin

  • 问题内容: 以下工作并打印命令输出: 但是此操作失败(退出状态为1): 有什么建议? 问题答案: 您可以这样做: