6 个版本 (3 个重大变更)
0.4.1 | 2020年3月24日 |
---|---|
0.4.0 | 2017年9月26日 |
0.3.1 | 2017年4月6日 |
0.3.0 | 2017年2月12日 |
0.1.0 | 2016年11月19日 |
#10 in #file-input
每月下载量 191 次
用于 12 个 crate
7KB
100 行
简介
UNIX 工具中经常出现的一种模式是
- 当提供了文件名参数时,你想从文件中读取,否则从 stdin 读取。
- 当提供了文件名参数时,你想将内容写入文件,否则写入 stdout。
这是一个适应这种模式的轻量级 crate。
注意: 此包尚为新品,其 API 可能会更改。
安装
此包可以使用 Cargo 使用
[dependencies]
stdinout = 0.1
lib.rs
:
编写命令行工具时经常出现的一种模式是,当提供了文件名参数时,希望打开文件,否则从 stdin/stdout 读写。不幸的是,在 Rust 中,这比应该做的要复杂。
stdinout
crate 提供了一个小型包装器,使得处理这种情况更加容易。
用于从文件或标准输入读取
let input = Input::from(matches.free.get(0));
let reader = or_exit(input.buf_read());
for line in reader.lines() {
// Use 'line'
}
用于向文件或标准输出写入
let output = Output::from(args.get(1));
// Get an object that implements the Write trait.
let write = output.write().unwrap();