Небольшое замешательство в выборе класса: 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))
- ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д