加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML编写器和内存流c#

发布时间:2020-12-16 07:47:50 所属栏目:百科 来源:网络整理
导读:我正在使用XmlWriter创建一个文件,XmlWriter writer = XmlWriter.Create(fileName);它正在创建一个文件然后我还有一个函数,我正在调用private void EncryptFile(string inputFile,string outputFile),它接受2个字符串输入和outpulfile,最后我有两个文件,一个
我正在使用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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读