在内存中写入文本文件而不存储到磁盘
Writing a text file in memory without storing to disk
我有一个字符串列表作为输入,我需要将其放入一个文本文件中,然后将该文本文件放入一个加密的 ZIP 存档中。我想分两步完成:
- 创建文本文件并获取其字节
- 使用 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));
}
我有一个字符串列表作为输入,我需要将其放入一个文本文件中,然后将该文本文件放入一个加密的 ZIP 存档中。我想分两步完成:
- 创建文本文件并获取其字节
- 使用 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));
}