gpt4 book ai didi

c# - 使用 csvhelper 和 memorystream 时字节长度错误

转载 作者:行者123 更新时间:2023-11-30 14:57:45 28 4
gpt4 key购买 nike

我正在使用 CSVHelper 将对象列表转换为 csv,然后将其保存到 FTP - 但内容的长度计算不正确,因此内容的末尾被截断。谁能看出我在这里做错了什么;

    using (var memoryStream = new MemoryStream())
{
using (var streamWriter = new StreamWriter(memoryStream))
{
using (var csvWriter = new CsvWriter(streamWriter))
{
csvWriter.Configuration.Delimiter = ";";
csvWriter.Configuration.HasHeaderRecord = false;
csvWriter.WriteRecords<MyObject>(myObjectList);

var request = (FtpWebRequest)WebRequest.Create(".../my.csv");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("user", "pass");
request.ContentLength = memoryStream.Length;
byte[] fileContents = memoryStream.ToArray();
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
}
}
}

memoryStream.Length 和 fileContents.Length 都给我相同的数字,但与实际数据量相比,它太小了。

最佳答案

您没有将编写器数据刷新到流中。 StreamWriter 会在写满时自行刷新,但您需要在完成写入后手动刷新。

streamWriter.Flush();

关于c# - 使用 csvhelper 和 memorystream 时字节长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364765/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com