2
Я хочу одновременно читать и записывать данные в файл. Могу ли я использовать StreamReader и StreamWriter только с файлом? И почему код ниже не выводит цифры?одновременно читать и записывать данные в файл
var stream = new FileStream(path,FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
var sw = new StreamWriter(stream);
var sr = new StreamReader(stream);
for(int i=0;i<10;i++)
{
sw.WriteLine(i);
}
stream.Seek(0,SeekOrigin.Begin);
for(int i=0;i<10;i++)
{
Console.WriteLine(sr.ReadLine());
}
stream.Close();
Вы должны закрыть свой поток в инструкции 'using'. – SLaks
Будьте очень осторожны. Одно дело иметь два открытых файла FileStream в заданном файле, используя возможности совместного использования для чтения и записи операционной системы. Совсем другое дело в том, что StreamReader и StreamWriter обращаются к тому же экземпляру FileStream. Внутренняя буферизация в StreamReader и StreamWriter может дать вам неожиданные результаты, если вы попытаетесь чередовать порядок чтения и записи. – Josh