本文探討了在使用 Java 進程時利用輸入和輸出流的複雜性。我們將特別關註解決在維護這些流的功能時遇到的挑戰。
提供的程式碼範例舉例說明了一個場景,其中可以將命令輸入到 bash shell 中,隨後的輸出為迴聲。然而,在初次讀取後就會出現問題,導致後續輸出流無法操作。本文旨在闡明這些問題並提出解決方案。
第一步涉及修改程式碼片段以利用 ProcessBuilder 類,這簡化了外部流程執行。它的主要優點是能夠將子程序的標準錯誤流重定向到其標準輸出。
此外,負責讀取進程標準輸出的循環很容易掛起,因為它們僅在結束時終止來自閱讀器的檔案。為了解決這個問題,採用了一種涉及「魔法」線的技術來劃分 shell 命令輸出的結論。
必須承認這種方法的限制:
本文概述的更改為使用Java 進程時維護輸入/輸出流功能所遇到的挑戰提供了全面的解決方案。雖然該技術可能有一定的局限性,但它提供了一種可靠的方法來執行 shell 命令並透過計劃任務定期檢索其輸出。
以上是如何可靠地處理 Java 進程中的輸入/輸出流?的詳細內容。更多資訊請關注PHP中文網其他相關文章!