/ / Hướng dẫn làm việc với tệp văn bản trong Rust

Hướng dẫn làm việc với tệp văn bản trong Rust

Hiệu suất cao và an toàn bộ nhớ của Rust, kết hợp với sự hỗ trợ cho các biểu thức thông thường và hoạt động I/O tệp hiệu quả, cho phép xử lý dữ liệu và văn bản hấp dẫn, làm cho Rust trở thành một ngôn ngữ tuyệt vời để làm việc với các tệp văn bản.


Các tệp văn bản là nguồn dữ liệu được chia sẻ cho các ứng dụng và Rust cung cấp một bộ công cụ mạnh mẽ để làm việc với các tệp văn bản trong thư viện chuẩn.


Làm việc với các tệp văn bản trong Rust

Thư viện tiêu chuẩn của Rust cung cấp một số mô-đun để đọc, viết và thao tác với tệp, bao gồm tệp văn bản.

Làm việc với các tệp văn bản trong Rust liên quan đến việc đọc dữ liệu từ một tệp, sử dụng dữ liệu trong bộ nhớ, sau đó ghi dữ liệu đã sửa đổi trở lại tệp.

Rust cung cấp tích hợp sẵn fs mô-đun để làm việc với các tệp và hệ thống tệp. Các fs mô-đun cung cấp các chức năng và loại mà bạn có thể sử dụng để mở, đọc, viết và thao tác với tệp và thư mục, bao gồm cả tệp văn bản.

Các chức năng phổ biến trong fs mô-đun bao gồm fs::File::open chức năng mở tệp cho các hoạt động đọc, fs::File::create để tạo tệp và fs::viết chức năng ghi dữ liệu vào tệp.

Các fs mô-đun cũng cung cấp các chức năng như fs::remove_file chức năng xóa tập tin, fs::create_dir chức năng tạo thư mục và fs::read_dir chức năng đọc các tập tin trong một thư mục.

Các fs mô-đun rất linh hoạt và bạn có thể sử dụng fs mô-đun để hoạt động với hầu hết các loại tệp, bao gồm cả tệp văn bản.

Đọc tệp văn bản trong Rust

Bạn phải mở một tệp văn bản để đọc tệp. Bạn sẽ sử dụng fs::File::open chức năng mở tệp trước thao tác đọc.

Chạy các lệnh này để tạo tệp văn bản và viết một câu vào tệp từ dòng lệnh của bạn.

 touch input.txt

echo "We're tech enthusiasts on a mission to teach the world how to use and understand the tech in their lives. Phones, laptops, gadgets, apps, software, websites, services---if it can make your life better, we'll show you all the tips, tricks, and techniques you need to know to get the most out of what you have." > input.txt

Bây giờ bạn đã có sẵn một tệp văn bản có nội dung cho thao tác đọc, bạn có thể viết mã Rust để đọc nội dung của tệp.

Đây là cách bạn có thể đọc từ đầu vào.txt tài liệu:

 use std::fs::File;
use std::io::{BufRead, BufReader};

fn main() -> std::io::Result<()> {
    
    let file = File::open("input.txt")?;

    
    let reader = BufReader::new(file);

    
    for line in reader.lines() {
        println!("{}", line?);
    }

    Ok(())
}

Các chủ yếu hàm trả về kết quả của phép toán. Các tài liệu biến là thể hiện tệp đang mở mà mới chức năng của BufĐọc mô-đun tham gia để tạo trình đọc đệm để đọc tệp.

Cấu trúc điều khiển vòng lặp for duyệt qua tệp và in từng dòng từ tệp sang bàn điều khiển bằng lệnh inln! vĩ mô.

kết quả từ việc đọc tệp văn bản-1

Ghi vào tệp văn bản trong Rust

Bạn sẽ cần tạo một tệp mới với fs::File::create chức năng (nếu tệp không tồn tại) để ghi vào tệp văn bản.

Đây là cách bạn có thể tạo và ghi các tệp văn bản trong Rust:

 use std::fs::File;
use std::io::{BufWriter, Write};

fn main() -> std::io::Result<()> {
    
    let file = File::create("output.txt")?;

    
    let mut writer = BufWriter::new(file);

    
    writer.write_all(b"Hello, world!n")?;
    writer.write_all(b"Rust is awesome.n")?;

    
    writer.flush()?;

    println!("Write Operation Successful");
    Ok(())
}

Các tài liệu biến là một thể hiện của biến được tạo đầu ra.txt tập tin, và nhà văn biến là một thể hiện của trình ghi được lưu vào bộ đệm để ghi vào tệp.

Các write_all chức năng ghi dữ liệu vào tệp và tuôn ra chức năng tuôn ra các nhà văn.

Đây là kết quả khi chạy chức năng chính:

kết quả ghi vào tệp văn bản

Bạn có thể sử dụng tệp văn bản cho một số thao tác

Tệp văn bản nhẹ và tiện dụng cho nhiều mục đích, từ tệp cấu hình đến trao đổi dữ liệu, ghi nhật ký và xử lý văn bản. Khi bạn xây dựng ứng dụng bằng Rust hoặc bất kỳ ngôn ngữ lập trình nào khác như Go, bạn có thể khám phá các trường hợp sử dụng khác cho tệp văn bản để giảm bớt quy trình phát triển của mình.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *