0
저장된 목록을 이진 파일에서 목록으로 다시 읽으려고 할 때 문제가 있습니다. 파일을 암호화하지 않고 암호화해도 문제가 없습니다.BinaryReader에서 MemoryStream에 쓰기
작성 방법 :
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 : 구문 분석을하기 전에 발생한 스트림의 끝. 디시리얼라이저의 : dataList = (목록) bFormatter.Deserialize (ms); –
Tomerz