'how do i concatenate two files in rust? [duplicate]
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);
}
Solution 1:[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(())
}
Solution 2:[2]
solution: add .append(true)
let mut txt1 = fs::OpenOptions::new()
.read(true)
.write(true)
.append(true)
.open("txt1.txt")
.unwrap();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ali Mirghasemi |
| Solution 2 | PranshuTheGamer |
