【发布时间】:2013-10-08 16:02:04
【问题描述】:
我知道如何将一个简单的字符串编码/解码到/从 base64。
但是,如果数据已经写入 FileStream 对象,我该怎么做。假设我只能访问 FileStream 对象,而不能访问其中先前存储的原始数据。在将 FileStream 刷新到文件之前,如何将 FileStream 编码为 base64。
Ofc 我可以在将 FileStream 写入文件后打开我的文件并对其进行编码/解码,但我想一步完成这一切,而不是一个接一个地执行两个文件操作。该文件可能更大,并且在刚刚保存不久之后再次加载、编码和保存它也需要双倍的时间。
也许你们当中有人知道更好的解决方案?例如,我可以将 FileStream 转换为字符串,对字符串进行编码,然后将字符串转换回 FileStream,或者我会做什么以及这样的代码会是什么样子?
【问题讨论】:
-
我不确定我是否完全理解您的问题,但可以使用内置类来提供将二进制数据转换为基数 64 数据或从基数 64 数据转换的流。然后,您可以在写入和文件输出流之间插入这样的流(例如通常通过压缩流和加密流来完成)。一个例子在这里:netpl.blogspot.co.uk/2011/05/builtin-base64-streaming.html
-
this 不是答案吗?
-
别忘了:stream.Seek(0, SeekOrigin.Begin);在方法的开头... ;-)
标签: c# string file base64 filestream