在内存中写入文本文件而不存储到磁盘

时间:2015-01-28 07:32:24

标签: c# .net

我有一个字符串列表作为输入,我需要将其放入文本文件,然后将该文本文件放入加密的ZIP存档中。我想分两步完成这个步骤:

  1. 创建文本文件并获取其字节
  2. 使用zip库将字节写入存档
  3. 但是,有一个主要要求:出于安全考虑,我不允许将文本文件写入磁盘

    我一直在玩内存流和流编写器等,但似乎无法弄明白。我更喜欢UTF8编码。

    private byte[] GenerateTextFile(List<string> contents)
    {
        // Generate a text file in memory and return its bytes
    }
    

    你们可以帮助我吗?

1 个答案:

答案 0 :(得分:7)

这很简单,你应该将所有字符串连成一个,然后拨打Encoding.UTF8.GetBytes()

要连接您可以使用的字符串:

string.Join(delimiter, contents)

如果您不需要分隔符,只需删除它,否则您可能需要使用\n

所以你会有这个方法:

private byte[] GenerateTextFile(List<string> contents)
{
    return Encoding.UTF8.GetBytes(string.Join(delimiter, contents));
}