6 个版本
使用旧的 Rust 2015
0.0.6 | 2017 年 5 月 24 日 |
---|---|
0.0.5 | 2017 年 5 月 3 日 |
0.0.4 | 2016 年 1 月 22 日 |
0.0.3 | 2015 年 6 月 13 日 |
0.0.1 | 2015 年 4 月 12 日 |
444 在 内存管理 中
104 每月下载量
13KB
184 行
lines - 按行流式传输文本
lines
是一个小型库,可以有效地按行解析文本文件,同时避免不必要的内存分配。
通常,处理日志文件或其他按行组织的文件格式时,不一定需要为每行处理分配内存。相反,我们可以 ...
- ... 分配并维护一个缓冲区 ...
- ... 在处理流中定位一行并将其复制到指定的缓冲区 ...
- ... 将缓冲区借给客户端代码进行“一些数值计算”,然后 ...
- ... 在步骤 2 后重复定位输入中的下一行。
通过重用缓冲区并让客户端决定是否复制读取的行,我们可以在某些情况下获得显著的性能提升。
用法
由于 lines
使用 Cargo,添加以下依赖项部分应该足以开始使用它
[dependencies.lines]
version = "*"
以下程序演示了逐行迭代文件的典型示例
#[macro_use(read_lines)]
extern crate lines;
use lines::linereader::LineReader;
use std::fs::File;
use std::str::from_utf8;
fn main() {
let f = File::open("main.rs").unwrap();
read_lines!(line in LineReader::new(f), {
let line = from_utf8(line.unwrap()).unwrap();
print!("{}", line);
});
}
该库可以处理的数据存在某些限制。特别是,换行符被假定为 '\n'。更多信息可以在库的 生成文档 中找到。
依赖项
~620KB