rabuf

The Buffer for random access file.

When you read and write a file, this read and write in Chunk units and reduce IO operation.

Examples

Write, Seek, Read

```rust use rabuf::BufFile; use std::fs::File; use std::io::{Read, Seek, SeekFrom, Write};

std::fs::createdirall("target/tmp").unwrap();

let path = "target/tmp/doctest1"; let bw = b"ABCEDFG\nhijklmn\n";

let f = File::create(path).unwrap(); let mut bf = BufFile::new(f).unwrap(); bf.write_all(bw).unwrap();

bf.seek(SeekFrom::Start(0)).unwrap();

let mut br = vec![0u8; bw.len()]; bf.readexact(&mut br).unwrap(); asserteq!(&br, bw); ```

Write, Close, Open, Read

```rust use rabuf::BufFile; use std::fs::File; use std::io::{Read, Seek, SeekFrom, Write};

std::fs::createdirall("target/tmp").unwrap(); let path = "target/tmp/doctest2";

let bw = b"abcdefg\nHIJKLMN\n"; { let f = File::create(path).unwrap(); let mut bf = BufFile::new(f).unwrap(); bf.writeall(bw).unwrap(); } { let f = File::open(path).unwrap(); let mut bf = BufFile::new(f).unwrap(); let mut br = vec![0u8; bw.len()]; bf.readexact(&mut br).unwrap(); assert_eq!(&br, bw); } ```

Changelogs

This crate's changelog here.

License

This project is licensed under either of

at your option.