tgoop.com/extremecode/1318
Last Update:
Когда только начинал программировать, каждый раз удивлялся, почему во всех гайдах работа с файлами выглядит как херня из под коня.
Сначала открой поток. Потом оберни его в StreamReader. Потом какой-нибудь буфер добавь. Потом подумай о том, как всё это всё подиспоузить. А зачем? Есть же File.ReadAllLines — вызвал, прочитал, пошёл играть в варкрафт.
Прошло время. И до меня начало доходить, что работа с файлами — это целый сраный квест:
> Права доступа. Файл можно читать, но нельзя писать. Или наоборот. Или вообще ничего нельзя. Надо проверять, запрашивать, обрабатывать отказы.
> Платформозависимость. Windows, Linux, Android, холодильник, тапочек твоего бати — у всех свои приколы.
> Файл может быть занят. Какая-нибудь другая прога уже с ним работает. Всё, облом (или не облом
> Файл может быть гигантским. Читать его целиком — ОЗУ не хватит. Надо по частям (подписчики из Питера на месте?).
> Кодировки. UTF-8, ANSI, CP1251, древний шумерский — угадай, попробуй, приятного аппетита.
> Параллельный доступ. Попробуй-ка из двух потоков одновременно туда что-то записать. Увидишь, что бывает
И вот тогда ты понимаешь, почему нормальные люди делают эту всратую обёртку из стримов и ридеров. Это не из вредности, а из-за здравой анальности.