Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

ConsoleReaderOutputStream

public class ConsoleReaderOutputStream
extends Object

java.lang.Object
com.android.tradefed.log.ConsoleReaderOutputStream


一個OutputStream,可用於使System.out.print()與用戶的ConsoleReader緩衝區配合使用。

在瑣碎的性能測試中,此類沒有可衡量的性能影響。

概要

公共建設者

ConsoleReaderOutputStream (ConsoleReader reader)

公開方法

void flush ()

ConsoleReader getConsoleReader ()

獲取我們內部使用的ConsoleReader實例

void setAsyncMode ()

設置異步模式。

void setSyncMode ()

設置同步模式。

void write (byte[] b, int off, int len)

一種特殊的實現,可在異步任務寫入標準輸出時使用戶的命令緩衝區可見。

void write (int b)

公共建設者

ConsoleReaderOutputStream

public ConsoleReaderOutputStream (ConsoleReader reader)

參量
reader ConsoleReader

公開方法

齊平

public void flush ()

getConsoleReader

public ConsoleReader getConsoleReader ()

獲取我們內部使用的ConsoleReader實例

退貨
ConsoleReader

setAsyncMode

public void setAsyncMode ()

設置異步模式。這在我們顯示命令提示符並開始等待用戶輸入後立即發生。在這種模式下,屏幕上最新的行保證是命令提示符。特別是,異步任務可能會嘗試在屏幕上打印,因此我們會在提示符下隨機播放提示。

setSyncMode

public void setSyncMode ()

設置同步模式。這是在用戶採取了某些措施之後發生的,例如,保證屏幕上的最新行不是命令提示符。在這種情況下,我們將禁用提示改組行為(這要求屏幕上的最新行是提示)

public void write (byte[] b, 
                int off, 
                int len)

一種特殊的實現,可在異步任務寫入標準輸出時使用戶的命令緩衝區可見。

如果檢測到全行寫入(以“ \ n”結尾的寫入),我們:

  1. 清除當前行(它將包含提示和用戶的緩衝區
  2. 打印整行,這將使我們進入新行
  3. 重畫提示和用戶的緩衝區

這樣,我們就不會跳過任何異步記錄的輸出,但仍將提示和用戶緩衝區保留為屏幕上的最後一項。

FIXME:我們可能應該緩衝輸出,並且只將整行寫入控制台。

參量
b byte

off int

len int

public void write (int b)

參量
b int