我正在尝试将 csv 流转换为制表符分隔的文本内存流,当它尝试写入流时,它给了我内存不足异常的错误,它正在本地计算机中进行处理,但是问题发生在开发环境上代码部署后。
下面是示例代码
MemoryStream tabDelimitedStream = new MemoryStream();
using (var reader = new StreamReader(downloadFileData))
using (var writer = new StreamWriter(tabDelimitedStream, Encoding.UTF8 ,8096))
{
// Read the lines from the original stream and process them
while (!reader.EndOfStream)
{
char[] buffer = new char[8096];
int bytesRead;
string chunk;
while ((bytesRead = reader.Read(buffer, 0, buffer.Length)) > 0)
{
chunk = new string(buffer, 0, bytesRead).Replace(",", "\t");
writer.Write(chunk);
writer.Flush();
}
}
tabDelimitedStream.Position = 0;
我试图在缓冲区中读取它,但仍然失败,我尝试设置 tabDelimitedStream 的最大长度,但这也无法解决问题。任何帮助将不胜感激,提前致谢。
尝试添加到缓冲区并分块写入,但没有成功。
如果要将其上传到 Blob 存储,可以直接写入 Blob 流,而不是在内存中分配它(请参阅 https://learn.microsoft.com/en-us/azure/storage/blobs/storage- blob 上传#上传到 blob 存储中的流)
提示:给出下一个答案的完整上下文