У меня возникла проблема при попытке прочитать сохраненный список из двоичного файла обратно в список. файл зашифрован, без шифрования у меня не было проблем.Запись в MemoryStream из BinaryReader
Способ записи:
private void WriteEncodedFile(FileStream fileStream, MemoryStream memoryStream)
{
StreamReader sr = new StreamReader(memoryStream);
BinaryWriter bw = new BinaryWriter(fileStream);
memoryStream.Seek(0, SeekOrigin.Begin);
string data = sr.ReadToEnd();
var bytes = Encoding.UTF8.GetBytes(data);
for (int i = 0; i < bytes.Length; i++) bytes[i] ^= 0x5a;
bw.Write(Convert.ToBase64String(bytes));
bw.Close();
fileStream.Close();
}
Чтение метод:
private void ReadEncodedFile(FileStream fileStream, MemoryStream memoryStream)
{
BinaryReader br = new BinaryReader(fileStream);
StreamWriter sw = new StreamWriter(memoryStream);
fileStream.Seek(0, SeekOrigin.Begin);
memoryStream.Seek(0, SeekOrigin.Begin);
string base64 = br.ReadString();
byte[] bytes = Convert.FromBase64String(base64);
for (int i = 0; i < bytes.Length; i++) bytes[i] ^= 0x5a;
string decodedData = Encoding.UTF8.GetString(bytes);
sw.Write(decodedData);
}
при чтении содержимого я могу видеть его в "decodedData". однако StreamWriter, похоже, не записывает его в MemoryStream.
любая идея?
спасибо.
при добавлении sw.Flush я получаю следующую ошибку: System.Runtime.Serialization.SerializationException: конец потока, встречающийся до разбора, был завершен. на Deserializer: dataList = (Список) bFormatter.Deserialize (ms); –
Tomerz