РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
806 of 1245 menu

Тип SeekFrom

Тип SeekFrom представляет собой перечисление (enum), которое используется методом seek для указания точки отсчёта при перемещении курсора в потоке ввода-вывода. Он содержит три варианта: Start - отсчёт от начала потока, End - отсчёт от конца потока и Current - отсчёт от текущей позиции. Каждый вариант принимает значение типа i64, которое задаёт смещение относительно выбранной точки.

Синтаксис

enum SeekFrom { Start(u64), End(i64), Current(i64), }

Пример

Давайте откроем файл, переместим курсор в позицию 5 от начала с помощью SeekFrom::Start и прочитаем содержимое:

use std::fs::File; use std::io::{Read, Seek, SeekFrom}; fn main() { let mut file = File::open("test.txt").unwrap(); file.seek(SeekFrom::Start(5)).unwrap(); let mut buffer = String::new(); file.read_to_string(&mut buffer).unwrap(); println!("{}", buffer); }

Результат выполнения кода:

"fghij"

Пример

Давайте переместим курсор на 3 байта от конца файла с помощью SeekFrom::End и прочитаем оставшиеся данные:

use std::fs::File; use std::io::{Read, Seek, SeekFrom}; fn main() { let mut file = File::open("test.txt").unwrap(); file.seek(SeekFrom::End(-3)).unwrap(); let mut buffer = String::new(); file.read_to_string(&mut buffer).unwrap(); println!("{}", buffer); }

Результат выполнения кода:

"hij"

Пример

Давайте переместим курсор вперёд на 2 байта от текущей позиции с помощью SeekFrom::Current:

use std::fs::File; use std::io::{Read, Seek, SeekFrom}; fn main() { let mut file = File::open("test.txt").unwrap(); file.seek(SeekFrom::Start(2)).unwrap(); file.seek(SeekFrom::Current(2)).unwrap(); let mut buffer = String::new(); file.read_to_string(&mut buffer).unwrap(); println!("{}", buffer); }

Результат выполнения кода:

"efghij"

Смотрите также

  • тип Seek,
    который представляет трейт для перемещения курсора в потоке
  • метод seek,
    который перемещает курсор в указанную позицию
  • метод read_to_string,
    который читает всё содержимое в строку
  • метод read,
    который читает данные в буфер
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить