Как записать данные в файл


#1

я сделал запись в файл но при каждом повторении он перезаписывает данные я хочу чтобы все данные были в строку, подскажите плз что использовать, где то говорилось про write_fmt но не понял как его использовать

fn dfs(field: &mut [[bool; FIELD_SIZE]; FIELD_SIZE], start: (usize, usize), finish: (usize, usize)) -> bool {
    if field[start.0][start.1] {
        return false;
    }
    
    field[start.0][start.1] = true;

    let f = File::create("output.txt").unwrap();
    let mut f = BufWriter::new(f);

    if start == finish {
        let out_pos = get_chess_coords(start);
        let pos0 = out_pos.0.to_string();
        let pos1 = out_pos.1.to_string();
        let pos = pos0 + &pos1;
        f.write(pos.as_bytes()).expect("Unable to write data");
        return true;
    }
    
    for delta in DELTAS.iter() {
        let new_pos = ((start.0 as i32 + delta.0) as usize, (start.1 as i32 + delta.1) as usize);
        if dfs(field, new_pos, finish) {
            let out_pos = get_chess_coords(start);
             let pos0 = out_pos.0.to_string();
            let pos1 = out_pos.1.to_string();
            let pos = pos0 + &pos1;
            f.write(pos.as_bytes()).expect("Unable to write data");
            return true;
        }
    }

    return false;
}

#2

Сложно понять смысл вопроса, но, может, тебе https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#method.append нужен? Как с этим связана строка и write_fmt вообще не понял.

На всякий линкую кросспост из URLO.