Rustlang语言逐行处理文件的基本方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Rustlang语言逐行处理文件的基本方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1933字,纯文字阅读大概需要3分钟。
内容图文

文件操作
需求:
将文件中的内容按行读取出来,然后对改行的数据进行处理,最后将处理后的行数据存放到新的文件中。
使用RUST来处理的方法如下。
首先引入需要的标准库:
然后将处理函数放到一个 main 函数中,这是我处理小问题的习惯。
定义一个main函数,
fn man() {
}
将我们的实现代码放到上述的花括号中,首先试一下读取一个文件,代码如下。
use std::io::prelude::*; use std::fs::File; use std::io::BufWriter; use std::io::BufReader; fn main() { let file = File::open("./data.dat").unwrap(); let mut fin = BufReader::new(file); let mut line = String::new(); fin.read_line(&mut line).unwrap(); println!("{}", line); }
首先,通过标准库的 File open 一个文件,然后通过 unwrap() 获得文件。打开一个文件之后,再定义一个 BufReader ,用于读取文件的内容。读取的东西放到一个 String 中 line ,然后通过 fin.read_line() 函数读取文件的一行。最后打印出来读取的内容,看看是否读取成功。
现在,我们要读取文件的整个行,代码如下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
use std::io::prelude::*;
use std::fs::File;
use std::io::BufWriter;
use std::io::BufReader;
fn main() {
let
file = File::open(
"./data.dat"
).unwrap();
let
mut fin = BufReader::
new
(file);
for
line
in
fin.lines() {
println!(
"{}"
, line.unwrap());
}
}
|
这里,为了读取所有的行, RUST 的 BufReader 提供了一个 lines() 函数,返回 Lines 迭代器,使用 for 来取出所有的行。需要注意的就是 line 需要通过 upwrap() 来释放出来,当然也可以采用别的更加安全的方法。
现在需要的就是将处理过的行line,存储到新的文件中,代码如下。
use std::io::prelude::*; use std::fs::File; use std::io::BufWriter; use std::io::BufReader; fn main() { let file = File::open("./data.dat").unwrap(); let mut fin = BufReader::new(file); let file_new = File::create("./data_new.dat").unwrap(); let mut fout = BufWriter::new(file_new); for line in fin.lines() { let new_line = ope_line(&line.unwrap()); fout.write_all((new_line + "\n").as_bytes()); } fout.flush(); } fn ope_line(line: &String) -> String { line.clone() }
我们使用BufWriter的write_all()方法很方便的将处理后的行输出了。
RUST有很强的内存管理,所以在处理数据的时候要小心,编译器很找出所有的关于内存的错误。
注意,如果处理的字符串中有中文,而且使用write_fmt()函数写文件的时候,格式化字符串时一定要用{},而不是{:?}。
原文:http://www.cnblogs.com/zhangboyu/p/810a1a19f249a81bd2793f8e49503c8c.html
内容总结
以上是互联网集市为您收集整理的Rustlang语言逐行处理文件的基本方法全部内容,希望文章能够帮你解决Rustlang语言逐行处理文件的基本方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。