let f = File::open("file").unwrap();
let reader = BufReader::new(f).seek(io::SeekFrom::Start(2));
for b in reader.iter().next() {
println!("{}", b);
}
Выводит то, что находится внутри io::SeekFrom::Start, т.е. 2.
Ответ
Какой-то странный цикл у вас. По идее должно быть как-то так:
let f = File::open("file").unwrap();
let mut reader = BufReader::new(f);
reader.seek(io::SeekFrom::Start(2)).unwrap();
for b in reader.bytes() {
println!("{}", b);
}
Метод seek() возвращает Result
Что делает ваш код: вы открываете файл и смещаете указатель на 2 байта, сохраняя Result
Чтобы избежать подобных ошибок в будущем, внимательно читайте документацию на используемые трейты и типы: ни в трейте Read, ни в типе BufReader нет метода iter(), однако в Read есть метод bytes(), который вам был нужен. А вот метод Seek::seek возвращает Result
Комментариев нет:
Отправить комментарий