Небольшое замешательство в выборе класса: 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)) ...