The Buffer for random access file.
When you read and write a file,
this read and write in Chunk
units and reduce IO operation.
```rust use rabuf::BufFile; use std::fs::OpenOptions; 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 = OpenOptions::new().create(true) .read(true).write(true).open(path).unwrap(); let mut bf = BufFile::new("tes", 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); ```
```rust use rabuf::BufFile; use std::fs::OpenOptions; 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 = OpenOptions::new().create(true) .read(true).write(true).open(path).unwrap(); let mut bf = BufFile::new("tes", f).unwrap(); bf.writeall(bw).unwrap(); } { let f = OpenOptions::new().create(true) .read(true).write(true).open(path).unwrap(); let mut bf = BufFile::new("tes", f).unwrap(); let mut br = vec![0u8; bw.len()]; bf.readexact(&mut br).unwrap(); assert_eq!(&br, bw); } ```
This project is licensed under either of
at your option.