我有一个需要使用标准输入的 JAR 文件。我需要使用这个命令并且无法更改它:
cat filename | java -jar jarname.jar
我希望 JAR 能够以某种方式访问它,最简单的方法是通过
String[] args
。问题是 cat filename
的结果没有出现在 String[] args
中,或者以任何方式供我使用它。我已经尝试搜索此内容一段时间了,但我得到的只是有关使用管道将 java 输出写入文件的问题。
最简单的方式通过
String[] args
不可能。
该文件将以
System.in
形式提供。
这是一个简单的程序,可以直接打印 sysin,并直观地添加行号。
cat
有额外的步骤。现在您知道如何使用 System.in 了。请注意,如果 System.in 包含基于字节的数据,显然不要将其包装在读取器中(用于基于字符的数据)。只需直接从中读取字节即可。
> cat Test.java
import java.io.*;
class Test {
public static void main(String[] args) throws Exception {
var in = new BufferedReader(new InputStreamReader(System.in));
int lineNum = 1;
while (true) {
String line = in.readLine();
if (line == null) break;
System.out.printf("%6d. %s\n", lineNum++, line);
}
}
}
> cat hello.txt
Hello!
World!
> cat hello.txt | java Test.java
1. Hello!
2. World!