Rust: Ошибка чтения файла: 'вызывается `Result :: unwrap ()` для значения `Err`: Io (Custom {kind: UnexpectedEof, error:" не удалось заполнить весь буфер "})' - PullRequest
1 голос
/ 19 февраля 2020

Я пытаюсь записать некоторые игровые данные в файл, а затем прочитать их обратно. Данные хранятся в векторе структур. Запись данных в файл работает нормально, используя serialize и bincode, но чтение не удается.

    // Try to save the data. (Works)
    let mut f = BufWriter::new(File::create("sector.dat").unwrap());
    serialize_into(&mut f, &sector_vector).unwrap();

    // Try to read the data (Fails with "failed to fill whole buffer" error)
    let mut read_sector_vector: Vec<Sector::Sector> =
        deserialize_from(BufReader::new(File::open("sector.dat").unwrap())).unwrap();
    read_sector_vector[0].displaysector();

Я не могу понять это, и я не знаю достаточно о ржавчине, чтобы понять, что я делаю неправильно. Кажется, это проблема (из того, что я прочитал) о том, что BufReader не знает длину данных? Но я не знаю длину вектора (или, по крайней мере, не узнаю, когда по-настоящему читаю данные в другом исполняемом файле)

...