Файлы не нужны.
(По крайней мере на несменных носителях).
Сколько себя
помню, в компьютерах были файлы.
Мы храним в
файлах всё — документы, программы,
настройки, временные данные...
Что есть файл?
- Массив байт.
- Имя, по которому его можно найти и открыть.
- Атрибуты доступа, чтобы его не открыл/не изменил кто попало.
- Средства совместного доступа (или ограничения одновременного доступа).
Чего в файле
нет?
- Нет внутренней структуры. Файл — массив (последовательность) байт, чья интерпретация — полностью на совести открывшей его программы.
- Нет строго заданного типа. Программы должны догадываться о типе данных по окончанию имени или по первым байтам данных.
- Нет гарантии целостности. Любая программа может неправильно прочитать обработать и записать любой файл. Поэтому открыв собственный только что записанный файл, программа должна быть готова увидеть там мусор.
- Нет высокоуроневого интерфейса к данным в файле. Например, если файл содержит презентацию, в нем нет доступа к слайдам и элементам оформления — только байты и байты.
- Структуры файла неудобны для прямого обращения со стороны процессора. В худшем случае файл доступен приложению как байтовый поток, в лучшем — кусок файла маппится на адресное пространство, причем его редко удается маппить на одни и те же адреса. Да и форматы файла редко совпадают с режимами выравнивания, разрядностью, порядком байт и структурами данных целевой машины. Поэтому всякий раз при открытии файла, его содержимое должно конвертироваться во внутреннее представление, а при записи — конвертироваться обратно.