You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#将二维数组写入CSV时部分单元格缺失的求助

解决C# StreamWriter写入CSV时数组末尾值丢失的问题

我一眼就看出问题所在啦——你代码里的StreamWriter没有被正确关闭或刷新!这是IO操作里超常见的小坑,因为StreamWriter会把数据暂存在缓冲区里,缓冲区没满的话不会自动把数据写入磁盘,导致末尾的部分数据一直留在缓冲区里,没机会被写到文件里。

问题根源拆解

你控制台能完整打印出myArray的所有值,说明数据本身完全没问题,但写入CSV时末尾丢值,核心原因就是StreamWriter的缓冲区没有被清空,程序结束时缓冲区里剩余的内容没被写入文件。你的代码只创建了StreamWriter并写入数据,但既没调用Flush()强制刷新缓冲区,也没调用Close()关闭文件,更没用C#里推荐的资源管理方式来自动处理这些操作。

修复方案(两种可选)

方案1:使用using语句(推荐最佳实践)

using语句会自动帮你处理资源释放,包括刷新缓冲区和关闭文件,不用手动操心:

private static void CreateuCSV(double[,] myArray) 
{
    // using语句会在代码块结束时自动释放StreamWriter资源
    using (StreamWriter file = new StreamWriter("location"))
    {
        for (int i = 0; i < 12; i++) 
        {
            for (int j = 0; j < 480; j++) 
            {
                file.Write(myArray[i,j]);
                file.Write(",");
            }
            file.Write("\n");
        }
    } // 这里会自动执行file.Flush()和file.Close()
}

方案2:手动调用刷新和关闭

如果你不想用using,也可以手动在写入完成后刷新缓冲区并关闭文件:

private static void CreateuCSV(double[,] myArray) 
{
    StreamWriter file = new StreamWriter("location");
    try
    {
        for (int i = 0; i < 12; i++) 
        {
            for (int j = 0; j < 480; j++) 
            {
                file.Write(myArray[i,j]);
                file.Write(",");
            }
            file.Write("\n");
        }
        // 强制把缓冲区里的所有数据写入磁盘
        file.Flush();
    }
    finally
    {
        // 确保无论是否出错,文件都会被关闭
        file.Close();
    }
}

额外优化小建议

你当前的写法会让每一行末尾多一个逗号,可能导致CSV解析工具识别出多余的空列,推荐调整成更简洁的写法避免这个问题:

private static void CreateuCSV(double[,] myArray) 
{
    using (StreamWriter file = new StreamWriter("location"))
    {
        for (int i = 0; i < 12; i++) 
        {
            string[] rowValues = new string[480];
            for (int j = 0; j < 480; j++) 
            {
                rowValues[j] = myArray[i,j].ToString();
            }
            // 用逗号拼接整行,自动避免末尾多余逗号
            file.WriteLine(string.Join(",", rowValues));
        }
    }
}

内容的提问来源于stack exchange,提问作者Samuel Ogletree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:34:10