27 lines
688 B
Plaintext
27 lines
688 B
Plaintext
use std::fs::File;
|
|
use std::io::prelude::*;
|
|
use std::io::{BufReader, BufWriter};
|
|
|
|
fn reverse_file(
|
|
input_filename: &str,
|
|
output_filename: &str,
|
|
record_len: usize,
|
|
) -> std::io::Result<()> {
|
|
let mut input = BufReader::new(File::open(input_filename)?);
|
|
let mut output = BufWriter::new(File::create(output_filename)?);
|
|
let mut buffer = vec![0; record_len];
|
|
while input.read(&mut buffer)? == record_len {
|
|
buffer.reverse();
|
|
output.write_all(&buffer)?;
|
|
}
|
|
output.flush()?;
|
|
Ok(())
|
|
}
|
|
|
|
fn main() {
|
|
match reverse_file("infile.dat", "outfile.dat", 80) {
|
|
Ok(()) => {}
|
|
Err(error) => eprintln!("I/O error: {}", error),
|
|
}
|
|
}
|