System io streamreader
Автор Илья задал вопрос в разделе Другие языки и технологии
C# Помогите со StreamReader и StreamWriter, ситуация жуть! и получил лучший ответ
Ответ от Richard Spice[активный]
Для корректной работы со StreamWriter и StreamReader не открывайте файл заново для каждой операции. Создайте один экземпляр FileStream с параметрами FileMode. OpenOrCreate и FileAccess. ReadWrite, а затем передайте его в конструкторы StreamReader и StreamWriter. Это позволит читать и записывать данные в один открытый поток без постоянных обращений к диску. После завершения всех действий обязательно вызовите метод Close или Dispose для гарантированного освобождения системных ресурсов. Если размер файла невелик, эффективнее сразу загрузить его содержимое в оперативную память, выполнить все изменения с копией и единовременно сохранить результат обратно, что упростит архитектуру и снизит нагрузку на накопитель.
И так, раз такое дело, то тебе стоит поэксперементировать с методами:
Dispose()
Dispose(Boolean)
Finalize()
Close()
Методом тыка посмотри какой из них 100% освобождает ресурсы
//открой нативно
FileStream _sn = new FileStream("myfile.txt", FileMode.OpenOrCreate,FileAccess.ReadWrite);
StreamWriter _sn_writer = new StreamWriter(_sn);
StreamReader _sn_reader = new StreamReader(_sn);
//оператион
_sn.Close();
Майкл Де Санта Мудрец (10531) 8 часов назад
И так, раз такое дело, то тебе стоит поэксперементировать с методами:
Dispose()
Dispose(Boolean)
Finalize()
Close()
Методом тыка посмотри какой из них 100% освобождает ресурсы
>>Явных проблем в архитектуре самой программы нет, над этим постарался.
У вас наглядная 100% ПРОБЛЕМА (именно капсом) в архитектуре, а теперь поясню
1) Если вы постоянно работаете с файлом - во первых отображайте его в память, это ускорит обработку и снимет часть нагрузки с винчестера, но это актуально больше для ssd, привыкайте сразу делать грамотно.
2) Если таки работа с файлом нужна из нескольких мест - заведите переменную для работы с этим файлом, и держите его открытым всегда, просто передавайте из класса в класс ссылку на него
3) Ну и наконец третье зачем вы открываете файл каждый раз заного для чтенияперезаписидозаписи - открывайте файл сразу со всеми нужными режимами... т. е. и на чтение и на запись и на создание (создание - на случай отсутствия искомого файла, если его отсутствие не должно вызывать ошибки)
зы.. а вообще работать с файлом не есть кароший тон, загрузите в память файл и работайте с его копией в памяти, я ведь верно понял что файлы сравнительно не большого размера?)
Оч сложнл
Зачем nul? Если есть EOF
И так, раз такое дело, то тебе стоит поэксперементировать с методами:
Dispose()
Dispose(Boolean)
Finalize()
Close()
Методом тыка посмотри какой из них 100% освобождает ресурсы
Такой геморой с текстовыми файлами. УЖАС!!!!
FileStream sn = new FileStream("ВАШФАЙЛ. РАСШИРЕНИЕ", FileMode.OpenOrCreate,FileAccess.ReadWrite);
StreamWriter sn_write = new StreamWriter(sn);
StreamReader sn_read = new StreamReader(sn);
//Закрытие потока
sn.Close();
ОЧЕНЬ СЛОЖНО!!
ой ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёё
Криптор на C# ? Можно написать?
если под словом "Криптор" понимать программу для шифрования и дешифрования, то конечно ДА!
вот
подробнее...
C# как в richTextBox1 загрузить текст из файла txt
На лови, написал специально для тебя, так от нечего делать:
Класс для работы с
подробнее...
Считывание данных из текстового файла C#
using System;
using System.IO;
namespace ConsoleApplication1
{
class
подробнее...
C# десериализация из XML
Да и так все работает.
test.xml:
<?xml version="1.0"
подробнее...