Небольшое замешательство в выборе класса: FileInfo или StreamWriter - C#
Формулировка задачи:
Я так подозреваю - потоки хорошо использовать в циклах, но для этих же целей вместе с File создали FileInfo - его экземпляр тоже можно использовать в цикле. Часто вижу, что файл открывают методом File (а не StreamReader, например), а затем создают поток для работы с файлом в цикле. Но почему не быть последовательным и не использовать объект файлинфо? Методы файл и файлинфо удобны, они закрывают файлы, насколько я понимаю. (или как раз поэтому лучше использовать StreamWriter?)
Или зачем было создавать поток в этом примере из учебника (правда, иллюстрирующем работу finally)
var file = File.OpenRead(path); double[] buffer = new double[file.Length]; DataReader reader = new DataReader(path); buffer = reader.readAmplitudeValues(true); string tempName = _path.Replace(".wav", ".txt"); _txtResearchName = tempName; using (var wr = new StreamWriter(tempName)) { foreach (double val in buffer) { wr.Write(val.ToString()); wr.Write(" "); } }
static void ReadFile() { StreamReader reader = null; // B пространстве имен System.IO try { reader = File.OpenText ("file.txt"); if (reader.EndOfStream) return; Console.WriteLine (reader.ReadToEnd()); } finally { if (reader != null) reader.Dispose(); } }
Открыл студию и понемногу проясняется вроде - если нужно считать какие-то конкретные данные, то легко использовать методы File, но для смешанных типов данных, конечно нужен будет поток, например, StreamReader или что-то в этом роде
Решение задачи: «Небольшое замешательство в выборе класса: FileInfo или StreamWriter»
textual
Листинг программы
using (var streamReader = File.OpenText(filePath)) ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д