我们向文件写入三行信息,然后使用 BufRead::lines 创建的迭代器 Lines 读取文件,一次读回一行。File 模块实现了提供 BufReader 结构体的 Read trait。File::create 打开文件 File 进行写入,File::open 则进行读取,代码如下: use std::fs::File; use std::io::{Write, BufReader, BufRead, Error}; fn main...
let content = std::fs::read_to_string(&args.path).expect("无法读取文件"); for line in content.lines() { if line.contains(&args.pattern) { println!("{}", line); } } } 试一试:cargo run -- main src/main.rs现在应该可以工作了! 上面的代码,虽然能满足我们的业务需求,但是还不够完美。
我们向文件写入三行信息,然后使用 BufRead::lines 创建的迭代器 Lines 读取文件,一次读回一行。File 模块实现了提供 BufReader 结构体的 Read trait。File::create 打开文件 File 进行写入,File::open 则进行读取。 代码语言:javascript 复制 use std::fs::File;use std::io::{Write,BufReader,BufRead,Error}...
使用std::fs::File和std::io::BufRead模块可以逐行读取文件内容。以下是一个简单的示例: usestd::fs::File;usestd::io::{BufRead, BufReader};fnmain() {letfile = File::open("file.txt").expect("file not found");letreader = BufReader::new(file);forlineinreader.lines() {println!("{}"...
usestd::fs::File;usestd::io::{BufReader,BufRead};fn read_file_line_by_line(path:&str)->Result<(),Box<dyn std::error::Error>>{ letfile=File::open(path)?;let reader=BufReader::new(file);forlineinreader.lines(){matchline {// line是字符串Ok(line)=>process_line(line),Err(err...
reader.read_line(&mutline);// 读一行string,会保留换行符// 需要 use std::io::BufRead, 否则没法调用linesbuf_reader.lines();// 一个迭代器,不包含换行符buf_reader.read_until(stop_byte,&mutbyte_vec);// 类似 read_line, 但是返回的是bytesbuf_reader.split(stop_byte);// 类似 .lines(), ...
usestd::fs::File;usestd::io::{BufReader,BufRead};pubfnread_record_from_file(){letfile=File::open("D:/output/result.txt").unwrap();//1letmutreader=BufReader::new(file);letmutall_lines_string=String::new();letmutreaded_length=0;loop{readed_length=reader.read_line(&mutall_lines_st...
let content = std::fs::read_to_string(&args.path).expect("无法读取文件"); for line in content.lines() { if line.contains(&args.pattern) { println!("{}", line); } } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ...
("{}", String::from_utf8_lossy(&buf));// 按行读取forlineinreader.lines() {println!("{}", line.unwrap()); } 二、写操作 1、使用File::write方法 usestd::fs::File;usestd::io::Write;letcontent: &str="Hello, world";// 以只写的方式打开文件,文件存在则会覆盖原始内容letmutfile: ...
本文简要介绍rust语言中 std::io::BufRead.lines 的用法。用法fn lines(self) -> Lines<Self> where Self: Sized, 在此阅读器的行上返回一个迭代器。 从该函数返回的迭代器将产生以下实例io::Result<String>。返回的每个字符串将不是有一个换行字节(0xA字节)或CRLF(0xD,0xA字节)在最后。 例子 std::io...