¿Es posible usar el mismo archivo para leer y escribir?
Estoy tratando de usar lo mismostd::fs::File
objeto para escribir y leer, pero la lectura devuelve una cadena vacía.
lo intentéflush
, sync_all
yseek
, pero nada ayudó. Con un nuevoFile
Objeto Puedo leer el archivo fácilmente.
use std::io::{Read, Seek, Write};
const FILE_PATH: &str = "test.txt";
fn main() {
// Create file
let mut f = std::fs::File::create(FILE_PATH).unwrap();
f.write_all("foo bar".as_bytes());
f.seek(std::io::SeekFrom::Start(0));
// Read from the same descriptor
let mut content = String::new();
f.read_to_string(&mut content);
println!("{:?}", content); // -> ""
// Read from the other descriptor
let mut f = std::fs::File::open(FILE_PATH).unwrap();
let mut content = String::new();
f.read_to_string(&mut content);
println!("{:?}", content); // -> "foo bar"
}