本文简要介绍rust语言中 std::io::Seek.stream_len
的用法。
用法
fn stream_len(&mut self) -> Result<u64>
返回此流的长度(以字节为单位)。
此方法使用最多三个查找操作来实现。如果该方法返回成功,则seek位置不变(即调用该方法前的位置与调用后的位置相同)。但是,如果此方法返回错误,则未指定查找位置。
如果您需要获取长度许多流并且您不关心之后的查找位置,您可以通过简单地调用来减少查找操作的数量seek(SeekFrom::End(0))
并使用它的返回值(它也是流长度)。
请注意,流的长度可能会随时间而变化(例如,将数据附加到文件时)。所以多次调用这个方法不一定每次都返回相同的长度。
示例
#![feature(seek_stream_len)]
use std::{
io::{self, Seek},
fs::File,
};
fn main() -> io::Result<()> {
let mut f = File::open("foo.txt")?;
let len = f.stream_len()?;
println!("The file is currently {} bytes long", len);
Ok(())
}
相关用法
- Rust Seek.stream_position用法及代码示例
- Rust Seek.rewind用法及代码示例
- Rust Seek用法及代码示例
- Rust Sender用法及代码示例
- Rust Sender.send用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust Saturating.reverse_bits用法及代码示例
- Rust SyncSender.send用法及代码示例
- Rust SplitNMut用法及代码示例
- Rust SocketAddrV6.ip用法及代码示例
- Rust Shl.shl用法及代码示例
- Rust SubAssign.sub_assign用法及代码示例
- Rust SyncOnceCell用法及代码示例
- Rust Split.as_str用法及代码示例
- Rust String.insert_str用法及代码示例
- Rust String.into_raw_parts用法及代码示例
- Rust SocketAddr.port用法及代码示例
- Rust SocketAncillary.add_fds用法及代码示例
- Rust SocketAddr.as_abstract_namespace用法及代码示例
- Rust SocketAddr.as_pathname用法及代码示例
- Rust Stdio.piped用法及代码示例
- Rust SocketAncillary.clear用法及代码示例
- Rust String.extend_from_within用法及代码示例
- Rust SyncLazy用法及代码示例
- Rust Shr.shr用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::io::Seek.stream_len。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。