日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Rustlang语言逐行处理文件的基本方法

發布時間:2024/1/3 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 Rustlang语言逐行处理文件的基本方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件操作

需求:

將文件中的內容按行讀取出來,然后對改行的數據進行處理,最后將處理后的行數據存放到新的文件中。

使用RUST來處理的方法如下。

首先引入需要的標準庫:

use std::io::prelude::*;

use std::fs::File;

use std::io::BufWriter;

use std::io::BufReader;

 

然后將處理函數放到一個main函數中,這是我處理小問題的習慣。

定義一個main函數,

fnman(){

}

將我們的實現代碼放到上述的花括號中,首先試一下讀取一個文件,代碼如下。

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);

}

首先,通過標準庫的Fileopen一個文件,然后通過unwrap()獲得文件。打開一個文件之后,再定義一個BufReader,用于讀取文件的內容。讀取的東西放到一個String中line,然后通過fin.read_line()函數讀取文件的一行。最后打印出來讀取的內容,看看是否讀取成功。

現在,我們要讀取文件的整個行,代碼如下。

12345678910111213141516171819202122232425 use std::io::prelude::*;use std::fs::File;use std::io::BufWriter;use std::io::BufReader;fn main() {letfile = File::open("./data.dat").unwrap();letmut fin = BufReader::new(file);forlineinfin.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 + "
").as_bytes()); 

    }

    fout.flush();

}

 

fn ope_line(line: &String) -> String {

    line.clone()

}

我們使用BufWriter的write_all()方法很方便的將處理后的行輸出了。

RUST有很強的內存管理,所以在處理數據的時候要小心,編譯器很找出所有的關于內存的錯誤。

注意,如果處理的字符串中有中文,而且使用write_fmt()函數寫文件的時候,格式化字符串時一定要用{},而不是{:?}。

總結

以上是生活随笔為你收集整理的Rustlang语言逐行处理文件的基本方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。