Module (21%)
Section (33%)

Файловые потоки

Открытие потока не только связано с файлом, но также должно объявлять способ обработки потока. Это объявление называется режимом открытия.

Если открытие прошло успешно, программе будет разрешено выполнять только те операции, которые соответствуют объявленному режиму открытия.

В потоке выполняются две основные операции:

  • чтение из потока: части данных извлекаются из файла и помещаются в область памяти, управляемую программой (например, переменная);
  • запись в поток: части данных из памяти (например, переменная) переносятся в файл.

Для открытия потока используются три основных режима:

  • режим чтения: поток, открытый в этом режиме, разрешает только операции чтения; попытка записи в поток вызовет исключение (исключение называется UnsupportedOperation, которое наследует OSError и ValueError и поступает из модуля io);
  • режим записи: поток, открытый в этом режиме, позволяет только операции записи; попытка прочитать поток вызовет исключение, упомянутое выше;
  • режим обновления: поток, открытый в этом режиме, позволяет как писать, так и читать.



Прежде чем мы обсудим, как управлять потоками, мы должны Вам кое-что объяснить. Поток ведет себя почти как магнитофон.

Когда Вы читаете что-либо из потока, виртуальная головка перемещается по потоку в соответствии с количеством байтов, переданных из потока.

Когда Вы записываете что-то в поток, одна и та же головка движется вдоль потока, записывая данные из памяти.

Всякий раз, когда мы говорим о чтении и записи в поток, попытайтесь представить эту аналогию. В книгах по программированию этот механизм называется текущей позицией файла, и мы также будем использовать этот термин.

The read/write concept


Теперь необходимо показать вам объект, отвечающий за представление потоков в программах.