0

我以前从未在终端上使用过 java,当然我也从未为它编写过代码。我的问题很简单:当调用格式为

cat  file.txt  |  java  YourMainClass

我已经启动并运行了其余的代码,我只需要将给定的文件名放入我的 main 方法中。

4

2 回答 2

4

由于 cat 命令显示文件的内容,因此您需要使用 System.in 缓冲区来捕获来自该命令的数据。您可以使用指向 System.in 的 BufferedReader 循环遍历数据并对其进行处理。

看这个例子

public class ReadInput {
    public static void main(String[] args) throws IOException {
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String x = null;  
        while( (x = input.readLine()) != null ) {    
            System.out.println(x); 
        }    
    }
}  
于 2012-10-21T15:54:30.587 回答
1

当您希望从System.in的输出中读取时cat,您可以执行以下操作:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line;
while ((line = br.readLine()) != null) {
   // use line...
}
于 2012-10-21T15:50:38.837 回答