tango.io.Console (r4795)
License:
BSD style: see license.txt
Version:
Feb 2005: Initial release Nov 2005: Heavily revised for unicode Dec 2006: Outback release
Author:
Kris
-
struct Console ¶#
- l低级控制台 IO支持。注意暂时为 char、 wchar和 dchar中的每一个进行模板化。它变得很明显,如果只操作 utf8,在控制台的使用很有用。细节见下面的 Console.Conduit。
- 重定向( redirected)标准 IO处理(通过一个 shell)操作作为一个可以期望的,尽管重定向内容会受到它只能针对 utf8的限制。 class Input ¶#
- 作为一个缓冲器的控制台输入模型。注意 ,我们只读 utf8而已。 this(Conduit conduit, bool redirected) [private] ¶#
- 附加控制台输入到提供的设备。 char[] copyln(bool raw = false) [final] ¶#
- 返回从控制台可用的下一行,没有可用的东西时返回 null。返回值是缓冲器内容的一个复制品(它的 .dup应用 )。
- 每一行末尾被移除,除非参数 raw设为 true。 bool readln(inout char[] content, bool raw = false) [final] ¶#
- 从控制台取回一行文本并映射它到给定的参数。输入是切割,不是拷贝,因此适合用 .dup。每一行末尾被移除,除非参数 raw被设为 true。没有更多输入时返回 false。 InputStream stream() [final] ¶#
- 返回相关的流。 bool redirected() [final] ¶#
- 判断这个设备是否已重定向?
- 返回:
- 如果已重定向为 true,否则为 false。
备注:
- 从这个模块被实例化时反射控制台重定向状态。 Input redirected(bool yes) [final] ¶#
- 返回重定向情况到提供的布尔参数。
备注:
- 设置控制台的重定向状态 ,重定向控制台更有效率 (指明 newline()是否执行自动刷新( flushing))。 InputStream input() [final] ¶#
- 返回已配置源。
- 备注:
- 为控制台输入提供了访问底层的机制。当临时切换输入时用这个保留前一个状态。 Input input(InputStream source) [final] ¶#
- 转移输入到一个备用源。 class Output ¶#
- 控制台输出,仅接受 utf8。 this(Conduit conduit, bool redirected) [private] ¶#
- 附加控制台输出到提供的设备。 Output append(char[] x) [final] ¶#
- 追加到控制台。我们仅接受 UTF8,所以别的编码将通过一些更级别的 API处理。 Output append(Object other) [final] ¶#
- 追加内容。
参数:
other | 一个有有用的toString() 方法的对象。 |
返回:
- 如果所有内容已写,返回一个连锁引用。如果不是抛出一个 IOException异常,指出 eof 或 eob。
- 备注:
- 追加 other.toString() 的结果到控制台。 Output newline() [final] ¶#
- 添加一个 newline(换行符)并刷新( flush)控制台缓冲器。如果输出被重定向,刷新( flush)不自动发生。
- 返回:
- 如果所有内容已写,返回一个连锁引用。如果不是抛出一个 IOException异常,指出 eof 或 eob。
- 备注:
- 发出一个 newline (换行符)到缓冲区 ,为交互式控制台自动刷新( autoflush)当前缓冲器内容。重定向控制台不自动刷新,开启一个换行( newline)。 Output flush() [final] ¶#
- 明确地刷新控制台的输出。
返回:
- 如果所有内容已写,返回一个连锁引用。如果不是抛出一个 IOException异常,指出 eof 或 eob。
备注:
刷新(Flushes )控制台缓冲器到附加管道。
-
OutputStream stream() [final] ¶#
- 返回关联的流。 bool redirected() [final] ¶#
- 判断这个设备是否已重定向?
- 返回:
- 如果已重定向为 true,否则为 false。
备注:
- 反映控制台重定向状态。 Output redirected(bool yes) [final] ¶#
- 设置重定向情况到提供的布尔参数。
备注:
- 设置控制台的重定向状态 ,重定向控制台更有效率 (指明 newline()是否执行自动刷新( flushing))。
- OutputStream output() [final] ¶#
- 返回已配置输出接收器( sink)。
- 备注:
- 备注:
- 为控制台输出提供了访问底层的机制。当临时切换输出时用这个保留前一个状态。 Output output(OutputStream sink) [final] ¶#
- 转换输出到一个备用接收器( sink)。 class Conduit : Device ¶#
- 管道为具体地处理控制台设备。在 Win32平台,这照顾到某些实现细节。
- 注意,在 linux和 Win32平台控制都固定为 utf8。后一种实际上原生的是 utf16,但让开发者真的不伤脑筋处理这个不同很麻烦。尤其是, Win32控制台函数不能与重定向工作。这就导致另一个困难,可以被断言改善的控制台 I/O总是 Utf8,在所有模式中。 char[] toString() [override] ¶#
- 返回这个管道的名字。 this(uint handle) ¶#
- 和给定的手柄( handle)关联这个设备。
- 这是严格地为适应现有设备 ,如 Stdout和 friends。 void reopen(Handle handle_) [private, override] ¶#
- 获得访问标准的 IO手柄的机会。 Console.Input Cin [static] ¶#
- 全局表示的控制台 IO。
- 标准输入流。 Console.Output Cout [static] ¶# Console.Output Cerr [static] ¶#
- 标准错误流。 static this() ¶#
- 实例化控制台访问。 static ~this() ¶#
- 退出前刷新输出。
- (来自 Frits Van Bommel的好主意 )