IO Structs
I/O types สำหรับ reading และ writing ใน Rust รวมถึง buffered I/O และ in-memory operations
1. BufReader
Section titled “1. BufReader”BufReader<R> wraps any Read type และ provides buffering เพื่อ reduce syscalls
Using BufReader
Section titled “Using BufReader”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 เพื่อปลดล็อกบทความทั้งหมด
Login with Google