gpt4 book ai didi

c# - XML 编写器和内存流 c#

转载 作者:太空狗 更新时间:2023-10-29 18:16:31 25 4
gpt4 key购买 nike

我正在使用 XmlWriter 创建一个文件,XmlWriter writer = XmlWriter.Create(fileName); 它正在创建一个文件,然后我还有一个函数,我正在调用 private void EncryptFile (string inputFile, string outputFile) 它需要 2 个字符串输入和输出文件,最后我有两个文件,一个是加密的,一个不是。我只想要一个加密文件,但为了我的加密功能,它需要由 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。在阅读流之前,您必须确保不要忘记这两件事:

  1. 写完后调用 writer.Flush()
  2. 在开始读取流之前将 stream.Position 设置回 0

关于c# - XML 编写器和内存流 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12848201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com