Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 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