Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2017, 23:48   #1
Fredi_86
Новичок
Джуниор
 
Регистрация: 14.02.2017
Сообщений: 1
По умолчанию Работа с файлами

Здравствуйте.Вопрос по C#
Объясните пожалуйста мне некоторые моменты.
1.) В чем разница между классом File и его методами и классом FileStream и его методами?
2.)Почему когда я создаю текстовый файл
File.Create("d:\\Файлик.txt") и после пытаюсь в него тут же записать

for(int i = 0 ; i < 10 ; i++ )
{
File.AppendAllText("d:\\Файлик.txt" , i )
}
компилятор выдает ошибку,что этот файл уже используется.Почему?
Зачем класс File вообще,если не получается использовать его методы?
Другая ситуация обстоит когда сделал файловый поток (FileStream) и
потоковый "писатель" (StreamWriter), все получилось)))
Затем сделал потоковый "читатель"(что б вывести все что записано в файле,уже другом),но в место букв в консольном окне увидел набор символов(
Помогите пожалуйста во всем этом разобраться.
Fredi_86 вне форума Ответить с цитированием
Старый 15.02.2017, 09:05   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Цитата:
2.)Почему когда я создаю текстовый файл
File.Create("d:\\Файлик.txt");// и после пытаюсь в него тут же записать

for(int i = 0 ; i < 10 ; i++ )
{
File.AppendAllText("d:\\Файлик.txt" , i );
}
File.Create возвращает FileStream, если он не требуется, то создавать файл надо так:
Код:
File.Create("d:\\Файлик.txt").Dispose();
FileStream позволяют делать синхронные и асинхронные операции чтения и записи. Т.е. FileStream ты захватил файл, и уже FileStream знает все об этом файле, позволяет последовательно в него писать и читать, при
том, насколько я знаю он не держит все данные в себе. При большом файле, например в 1Гб ты сможешь делать с ним работать, без опасений, что твоя программа вылетит по памяти.
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 15.02.2017 в 09:12.
Скарам вне форума Ответить с цитированием
Старый 15.02.2017, 17:29   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

При использовании File.WriteAllText/AppendAllText отдельно создавать файл не нужно.

upd: Фактическая разница между классом File и FileStream: класс File - статический, вы не сможете создать объект этого класса, и в функциях этого класса работаете с файлами напрямую; для использования FileStream нужно создавать экземпляр этого класса.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 15.02.2017 в 17:34.
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
работа с файлами.... Nikki Nikki Помощь студентам 0 25.07.2012 13:11
Работа с файлами на С# Darh Помощь студентам 6 11.06.2010 03:00
Работа с файлами. tae1980 Microsoft Office Excel 3 23.05.2009 23:50