Skip to content
เข้าสู่ระบบ

IO Structs

I/O types สำหรับ reading และ writing ใน Rust รวมถึง buffered I/O และ in-memory operations

BufReader<R> wraps any Read type และ provides buffering เพื่อ reduce syscalls

use std::io::{BufRead, BufReader, Cursor};
fn main() {
// BufReader wraps any Read implementation
let data = "line 1\nline 2\nline 3\n";
let cursor = Cursor::new(data);
let reader = BufReader::new(cursor);
// Iterate lines
println!("=== Lines ===");
for line in reader.lines() {
println!(" {:?}", line.unwrap());
}
// Custom buffer capacity
let cursor = Cursor::new(data);
let reader = BufReader::with_capacity(1024, cursor);
println!("Buffer capacity: {}", reader.capacity());
// read_line - reads including newline
let cursor = Cursor::new("Hello\nWorld\n");
let mut reader = BufReader::new(cursor);
let mut line = String::new();
reader.read_line(&mut line).unwrap();
println!("\nFirst line (with newline): {:?}", line);
// read_until - reads until delimiter
let cursor = Cursor::new("a:b:c:d");
let mut reader = BufReader::new(cursor);
let mut buf = Vec::new();
reader.read_until(b':', &mut buf).unwrap();
println!("Until ':': {:?}", String::from_utf8_lossy(&buf));
// Direct buffer access
let cursor = Cursor::new("buffered data");
let mut reader = BufReader::new(cursor);
let buf = reader.fill_buf().unwrap();
println!("Buffer contents: {:?}", String::from_utf8_lossy(buf));
reader.consume(8); // Mark bytes as consumed
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด