1

I have txt1.txt and txt2.txt, how do i concatenate these files into txt1.txt using rust?

use std::fs;
use std::io;
use std::io::{Read, Write};

fn main() {
    let mut txt1 = fs::OpenOptions::new()
        .read(true)
        .write(true)
        .open("txt1.txt")
        .unwrap();
    
    let mut txt2 = fs::OpenOptions::new()
        .write(true)
        .open("txt2.txt")
        .unwrap();
    
    let result = io::copy(&mut txt2.txt, &mut txt1.txt).unwrap();
    println!("final txt size = {}", result);
}

1 Answers1

1

the below code will work for your question

use std::{fs, io};


fn main() {
    
    let mut txt1 = fs::OpenOptions::new()
        .append(true)
        .open("./txt1.txt")
        .unwrap();
    
    let mut txt2 = fs::OpenOptions::new()
        .read(true)
        .open("./txt2.txt")
        .unwrap();

    let result = io::copy(&mut txt2, &mut txt1);
    println!("Result: {:?}", result);
}

if you want get rid off unwrap() functions following code is your answer

use std::{fs, io};

fn main() -> std::io::Result<()>{
    
    let mut txt1 = fs::OpenOptions::new()
        .append(true)
        .open("./txt1.txt")?;
    
    let mut txt2 = fs::OpenOptions::new()
        .read(true)
        .open("./txt2.txt")?;

    let result = io::copy(&mut txt2, &mut txt1)?;
    println!("Result Len: {}", result);

    Ok(())
}
Ali Mirghasemi
  • 462
  • 2
  • 7