• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘

    字號: | 推薦給好友 上一篇 | 下一篇

    J2SE綜合:在Java程序中截獲控制臺輸出 (2)

    發布: 2008-5-08 10:04 | 作者: 不詳 | 來源: 賽迪網技術社區 | 查看: 25次 | 進入軟件測試論壇討論

    領測軟件測試網 軟件測試技術門戶`vYz2X:`$v$MV

    1.4 解決問題 軟件測試技術門戶 Jr'oT_Ct
    要防止管道流前兩個局限所帶來的問題,方法之一是用一個ByteArrayOutputStream作為代理或替代PipedOutputStream。 Listing 4顯示了一個LoopedStreams類,它用一個ByteArrayOutputStream提供和Java管道流類似的功能,但不會出現死鎖和 IOException異常。這個類的內部仍舊使用管道流,但隔離了本文介紹的前兩個問題。我們先來看看這個類的公用方法(參見圖3)。構造函數很簡單,它連接管道流,然后調用startByteArrayReaderThread()方法(稍后再討論該方法)。getOutputStream()方法返回一個OutputStream(具體地說,是一個ByteArrayOutputStream)用以替代PipedOutputStream。寫入該 OutputStream的數據最終將在getInputStream()方法返回的流中作為輸入出現。和使用PipedOutputStream的情形不同,向ByteArrayOutputStream寫入數據的線程的激活、寫數據、結束不會帶來負面效果。
    (i6c5Jqx(J1Q,s"|
    *A$N-F&B'L Y圖三:ByteArrayOutputStream原理
    `)v%~`-Dq)i!Jyz軟件測試技術門戶[s0W$XQOKw6` _
    軟件測試技術門戶J#j+i;`my
    【Listing 4:防止管道流應用中出現的常見問題】
    BRL%zRimport java.io.*;
    (NyuL heowpublic class LoopedStreams { 軟件測試技術門戶S2x;Y0xBr GP
        private PipedOutputStream pipedOS =  軟件測試技術門戶L~&QG;{TN
            new PipedOutputStream();
    Y? Cs 老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>