我正在使用XmlWriter创建一个文件,XmlWriter writer = XmlWriter.Create(fileName);它正在创建一个文件然后我还有一个函数,我正在调用private void EncryptFile(string inputFile,string outputFile),它接受2个字符串输入和outpulfile,最后我有两个文件,一个是加密的,一个不是.我只想要一个加密文件但是我的加密函数需要输入由XmlWriter创建的文件.有没有办法我可以创建内存流并将其传递给我的函数而不是创建一个输入文件.
我的加密功能
我的加密功能
private void EncryptFile (string inputFile,string outputFile) string password = @"fdds"; // Your Key Here UnicodeEncoding UE = new UnicodeEncoding(); byte[] key = UE.GetBytes(password); string cryptFile = outputFile; FileStream fsCrypt = new FileStream(cryptFile,FileMode.Create); RijndaelManaged RMCrypto = new RijndaelManaged(); CryptoStream cs = new CryptoStream(fsCrypt,RMCrypto.CreateEncryptor(key,key),CryptoStreamMode.Write); FileStream fsIn = new FileStream(inputFile,FileMode.Open); int data; while ((data = fsIn.ReadByte()) != -1) cs.WriteByte((byte)data); cs.FlushFinalBlock(); fsIn.Close(); cs.Close(); fsCrypt.Close(); } }
您可以创建一个写入内存流的XmlWriter:
var stream = new MemoryStream(); var writer = XmlWriter.Create(stream);
现在,您可以将此流传递给EncryptFile函数而不是inputFile.在阅读流之前,您必须确保不要忘记这两件事:
>完成写作后,调用writer.Flush().>在开始读取流之前将stream.Position设置回0.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。