CSV 文件保存读取

读取

using (TextFieldParser parser = new TextFieldParser(Path))
{
    // 设置解析器处理分隔符类型的文件,并指定分隔符为逗号
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");
    MessageParsing b = new MessageParsing();

    int i = 0;
    // 循环读取文件中的每一行数据
    while (!parser.EndOfData)
    {
        // 使用ReadFields方法获取当前行的字段数组
        string[] fields = parser.ReadFields();
        if (i < 2)
        {
            i++;
            continue;
        }

        MonitorDataModule a = new MonitorDataModule();

        a.DateTime = DateTime.ParseExact(fields[0], "yyyy-MM-dd-HH:mm:ss.fff", CultureInfo.InvariantCulture);
        a.StrID = fields[1];
        a.StrData = fields[3];

        d.Add(a);

    }
}

 

保存

/// <summary> 
/// 保存CSV:纯文本格式
/// </summary>
/// <param name="dt"></param>
/// <param name="saveFileName"></param>
/// <param name="load"></param>
private void SaveCSV(List<MonitorDataModule> dt, string saveFileName)
{
    try
    {
        using (StreamWriter fs = new StreamWriter(saveFileName, new FileStreamOptions() { Mode = FileMode.Create, Access = FileAccess.Write }))
        {
            for (int i = 0; i < dt.Count; i++)
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("\t");
                sb.Append(dt[i].DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff"));
                sb.Append(",");

                sb.Append("\t");
                sb.Append(dt[i].StrID.ToString());
                sb.Append(",");

                sb.Append("\t");
                sb.Append(dt[i].StrData.ToString());
                sb.Append(",");


                fs.WriteLine(sb);
            }
            fs.Flush();
        }
    }
    catch (Exception ex)
    {
        _logger.LogError("文件写入失败:" + ex.Message);
    }

}

 

posted @ 2026-06-11 15:22  妖言惑众'  阅读(8)  评论(0)    收藏  举报