簡體   English   中英

從命令行通過stdin到達Java應用程序

[英]Reaching Java application through stdin from command line

我已經用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,該PipedInputStream沒有連接任何東西,並且永遠不會獲取任何數據。 要從stdin中讀取內容,您無需創建新的流; 您應該只閱讀System.in。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM