有没有办法获得BufWriter的缓冲区长度?

问题描述 投票:8回答:1

一个BufWriter有一个私人领域buf无法进入。我怎么知道当前包含的数据的大小?

rust
1个回答
6
投票

你不能(检查the source to be sure)。内部buf不以任何方式暴露,大概是为了允许在不破坏兼容性的情况下改变实现。


嗯,你可以,但它很糟糕,而且很糟糕。您可以使用调试格式化程序打印BufWriter

use std::io::prelude::*;
use std::io::{self, BufWriter};

fn main() {
    let mut b = BufWriter::new(io::sink());
    b.write_all(b"hello, world").expect("Unable to write");
    println!("{:?}", b)
}
BufWriter { writer: Sink { .. }, buffer: 12/8192 }
© www.soinside.com 2019 - 2024. All rights reserved.