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

Writing a text file in memory without storing to disk

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

  1. 创建文本文件并获取其字节
  2. 使用 zip 库将字节写入存档

但是,有一个主要要求:出于安全原因,我不允许将文本文件写入磁盘

我一直在研究内存流和流编写器等,但似乎无法弄清楚。我更喜欢 UTF8 编码。

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

你们能帮帮我吗?

这很简单,您应该将所有字符串连接成一个,然后调用 Encoding.UTF8.GetBytes()

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

string.Join(delimiter, contents)

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

所以你会有这个方法:

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