本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。