This crate allows you to specify an offset for reads and writes, without changing the current
position in a file. This is similar to
pwrite() in C.
The major advantages of this type of I/O are:
- You don't need to seek before doing a random-access read or write, which is convenient.
- Reads don't modify the file at all, so don't require mutability.
Read the fifth 512-byte sector of a file:
use std::fs::File; use positioned_io::ReadAt; // note that file does not need to be mut let file = File::open("tests/pi.txt")?; // read up to 512 bytes let mut buf = [0; 512]; let bytes_read = file.read_at(2048, &mut buf)?;
Note: If possible use the
RandomAccessFile wrapper. On Windows
File is very slow.
This is a preview release of positioned-io.
Add it to your
Cargo.toml like so:
[dependencies] positioned-io-preview = "0.3"
All examples assume you are using it as:
extern crate positioned_io_preview as positioned_io;
positioned-io is licensed under the MIT license.