我用 Java 编写了一个实用程序,用于将 JSON 输入从文件或标准输入过滤为 XML。尽管我已将其制作为独立的、可运行的 JAR,但我不知道如何通过 stdin 将输入重定向到它。例如:
cat sample.json | java -jar ./target/json-to-xml-1.0.0.jar
该命令行不起作用;我想知道这是否可以做到。
private static String readContentFromStdIn() throws IOException
{
char ch;
StringBuilder sb = new StringBuilder();
PipedInputStream input = new PipedInputStream();
while( ( ch = ( char ) input.read() ) != -1 )
sb.append( ch );
input.close();
return sb.toString();
}
最佳答案
您的代码正在创建一个 PipedInputStream,它没有连接到任何东西,并且永远不会获取任何数据。要从 stdin 读取,您不需要创建新流;你应该只从 System.in 读取。
关于java - 从命令行通过 stdin 访问 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27570885/