C#--CSV文件的读写(SunnyUI学习一)

本文介绍了如何在C#中使用VisualStudio2022引入SunnyUI图形界面库,并通过示例展示了如何操作CSV文件进行读写,包括文件路径选择和界面设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一 、创作灵感

二、Visual Studio 2022引用SunnyUI

三、用SunnyUI写的CSV文件读取小程序演示

1、SunnyUI界面

2、源代码

3、视频演示

四、项目文件资源

五、结语


一 、创作灵感

        学习C#语言也有一段时间了,一直都用Winform自带的UI界面,看起来不是特别美观,自己创建UI界面库也很耗时,在网上找了SunnyUI图形界面库用于学习交流,今日先导入SunnyUI库并写一个读写CSV文件的小程序,有需要的小伙伴可以自提。

二、Visual Studio 2022引用SunnyUI

        Visual Studio 2022引用SunnyUI比较简单,主要步骤以视频演示:

两分钟学会C#引用SunnyUI图形界面库

三、用SunnyUI写的CSV文件读取小程序演示

1、SunnyUI界面

        界面如下,文本区域主要有写数据区域(uiRichTextBox1)、读数据区域(uiRichTextBox2)、文件名(uiTextBox2)、数据路径(uiTextBox1),按键有写数据、清空写、读数据、清空读、数据保存路径。具体功能可以看视频演示。

2、源代码

        代码中主要记住要使用命名空间 using Sunny.UI,且引用中一定要引用SunnyUI和SunnyUI.Common,引用方法详看第二大点中的视频,具体引用的库如下:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using Sunny.UI;

namespace SunnyUI_Study_1
{
    public partial class Form1 : UIForm
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void uiButtonWriteData_Click(object sender, EventArgs e) //写数据
        {
            string filename = uiTextBox1.Text + "\\"  + uiTextBox2.Text; //生成文件名路径
            string data = uiRichTextBox1.Text; //把写数据区域的数据赋值给字符串变量
            WriteDataCSV(filename, data); //向文件中写入数据
            MessageBox.Show("数据已写完");
            return;
        }

        public void WriteDataCSV(string FileNamePath,string data) //创建方法,写CSV数据
        {
            //写入数据
            if (!File.Exists(FileNamePath)) //判断文件不存在则创建新文件并写入数据
            {
                try
                {
                    FileStream fileStream = new FileStream(FileNamePath, FileMode.Create, FileAccess.Write); //实例化文件流类,并指定为创建模式和写
                    StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8); //实例化流写类,WriteLine()将以UTF8的编码方式写入数据
                    streamWriter.WriteLine(data);  //写入数据
                    streamWriter.Close();  //先关闭流写,写完一定要记得关闭,否则文件会被程序打开占用
                    fileStream.Close();  //再关闭文件流写,写完一定要记得关闭,否则文件会被程序打开占用
                }
                catch
                {

                }
            }
            else //否则在新文件内容末尾添加并保存数据
            {
                try
                {
                    FileStream fileStream = new FileStream(FileNamePath, FileMode.Append, FileAccess.Write); //实例化文件流类,并指定为追加模式和写
                    StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8); //实例化流写类,WriteLine()将以UTF8的编码方式写入数据
                    streamWriter.WriteLine(data);
                    streamWriter.Close(); //先关闭流写,写完一定要记得关闭,否则文件会被程序打开占用
                    fileStream.Close(); //再关闭文件流写,写完一定要记得关闭,否则文件会被程序打开占用
                }
                catch
                {

                }
            }
        }

        public string ReadDataCSV(string FileNamePath) //创建方法,写CSV数据
        {
            string data = string.Empty;
            //读取数据
            if (File.Exists(FileNamePath)) //判断文件存在则读取数据
            {
                try
                {
                    FileStream fileStream = new FileStream(FileNamePath, FileMode.Open, FileAccess.Read); //实例化文件流类,并指定为创建模式和读
                    StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8); //实例化流读类,将以UTF8的编码方式读取数据
                    data = streamReader.ReadToEnd();  //读取数据
                    streamReader.Close();  //先关闭流读,读完一定要记得关闭,否则文件可能会被程序打开占用
                    fileStream.Close();  //再关闭文件流读,读完一定要记得关闭,否则文件可能会被程序打开占用
                    return data;
                }
                catch
                {
                    return data;
                }
            }
            else
            {
                MessageBox.Show("要读取的文件不存在");
                return data;
            }
        }

        public string SelectFolderPath() //创建方法,选择文件夹路径
        {
            string folderPath = string.Empty; //创建空字符串变量
            FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); // 创建一个FolderBrowserDialog实例
            DialogResult result = folderBrowser.ShowDialog(); // 显示文件夹选择对话框
            if (result == DialogResult.OK) // 检查是否选择了文件夹并且点击了确定按钮
            {
                folderPath = folderBrowser.SelectedPath; // 获取用户选择的文件夹路径
                return folderPath; //返回选中的文件夹路径字符串
            }
            else 
            { 
                return string.Empty; 
            }
        }

        private void uiButtonDataSavePath_Click(object sender, EventArgs e) //选择保存数据路径
        {
            uiTextBox1.Text = SelectFolderPath(); 
        }

        private void uiButtonReadData_Click(object sender, EventArgs e) //读数据
        {
            string filename = uiTextBox1.Text + "\\" + uiTextBox2.Text; //生成文件名路径
            uiRichTextBox2.Text = ReadDataCSV(filename); //读取文件中所有数据
        }

        private void uiButtonClearWrite_Click(object sender, EventArgs e) //清空写区域
        {
            uiRichTextBox1.Text = string.Empty;
        }

        private void uiButtonClearRead_Click(object sender, EventArgs e) //清空读区域
        {
            uiRichTextBox2.Text = string.Empty;
        }
    }
}

3、视频演示

三分钟学会C# CSV文件的读写(SunnyUI学习一)

四、项目文件资源

        项目文件资源附件在文章上面显示,直接点击下载即可。

五、结语

        这篇文章借助SunnyUI的学习顺便学了CSV文件的读写、文件夹路径的选择。今后继续学习更多分享。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零壹电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值