From 4dbba14f4e31da9bcf8fb952f9d08efbd597a371 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Fri, 6 Sep 2019 20:52:36 -0700 Subject: [PATCH] Buffered read/write --- rust-lightclient/src/lightclient.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rust-lightclient/src/lightclient.rs b/rust-lightclient/src/lightclient.rs index 169f495..24d55a0 100644 --- a/rust-lightclient/src/lightclient.rs +++ b/rust-lightclient/src/lightclient.rs @@ -4,6 +4,7 @@ use std::path::Path; use std::fs::File; use std::io; use std::io::prelude::*; +use std::io::{BufReader, BufWriter}; use std::sync::Arc; use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; @@ -72,7 +73,7 @@ impl LightClient { print!("Reading wallet..."); io::stdout().flush().ok().expect("Could not flush stdout"); let mut file_buffer = match File::open("wallet.dat") { - Ok(f) => f, + Ok(f) => BufReader::new(f), Err(e) => { println!("[Error: {}]", e.description()); return; @@ -87,7 +88,9 @@ impl LightClient { pub fn do_save(&self) { print!("Saving wallet..."); io::stdout().flush().ok().expect("Could not flush stdout"); - let mut file_buffer = File::create("wallet.dat").unwrap(); + let mut file_buffer = BufWriter::with_capacity( + 1_000_000, // 1 MB write buffer + File::create("wallet.dat").unwrap()); self.wallet.write(&mut file_buffer).unwrap(); println!("[OK]");