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

时间:2018-03-05 13:34:22

标签: rust

BufWriter有一个无法访问的私有字段buf。我怎么知道当前包含在其中的数据的大小?

1 个答案:

答案 0 :(得分: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 }