C# List生成Txt文档,读取Txt文档封装List

1,527 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情

前言:

在做项目的时候遇到这样的一个问题,需要我将List中的数据读出来并把数据封装到Txt文件中,也能把Txt文件中的数据读出来放到List集合中,虽然不是很难,但是也很麻烦,这篇文章就是记录一下,自己写的代码,方便自己后期复习,查阅,有不足的地方,大家一起讨论学习一下,不喜勿喷,欢迎大家点赞评论收藏,你的点赞是我更文的动力。

12354689123110

一、简单设计界面

做一个简单的界面,两个触发按钮,对我们写的代码,进行控制(可以直接跳到后面看代码)

image-20220809212929185

窗体触发函数,双击按钮得到的触发函数,编写触发函数的触发条件和逻辑

image.png

二、方法函数讲解

总共两个函数,一个读,一个写,分别对应不同的代码,代码逻辑很简单,可以直接拷贝使用,也可以根据自己的需求做更改。代码在文末

image-20220809215226603

image-20220809215607199

三、效果展示

博主只是模拟一部风数据,将数据放进list中,再设置好你需要放置文件的位置,你可以设置任意位置,调用函数将list和文件保存路径作为参数传过去就可以了

image-20220809215841337

image.png

生成之后的文件如上图所示,Txt文件中有100个数值。接下来我们把这个txt文件中的数据再读出来,封装进List中。

image-20220809220430397

image.png

image-20220809220716074

四、代码逻辑

界面代码

using DictionaryToTxtFile;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace IC00520
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static Dao dao = new Dao();//调用方法的声明
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog();//定义打开文件类
            openFile.Filter = "Txt文件(*.Txt)|*.txt|所有文件|*.*";
            if (openFile.ShowDialog() != DialogResult.OK)//打开文件是否点击了取消
                return;
            string path = openFile.FileName;//获得你打开文件的名称,路径
            List<int> datalist= dao.WriteData(path);//调用方法
            foreach(int i in datalist)//遍历展示数据
            {
                richTextBox1.Text += i.ToString()+"\r\n";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            List<int> list = new List<int>();
            for(int i = 0; i<100;i++)//生成100个虚拟数据测试
            {
                list.Add(i);
            }
            dao.SaveData(list, "C:\Users\ASUS\source\repos\IC00520\IC00520\");//将数据和文件路径作为实参
        }
    }
}

方法类代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DictionaryToTxtFile
{
    public class Dao
    {
        public string SaveData(List<int> info,string path)
        {
            try
            {
                string dataName = "";//数据下发文件名
                string Data = "";
                foreach (var item in info)//遍历List数据将数据保存在Data中
                {
                    Data += item + "\r\n";
                }
                dataName = "IC00" + DateTime.Now.ToString("yyyy_MM_dd HH_mm_ss")+ ".txt";//以日期创建文件名
                path += dataName;
                File.AppendAllText(path, Data);//直接追加,如果没有这个文件会自动添加
                return "OK";
            }
           catch(Exception ex)
            {
                return ex.Message.ToString();
            } 
        }
        public List<int>  WriteData(string filepath)
        {
            try
            {
                List<int> info = new List<int>();
                string[] lines = File.ReadAllLines(filepath);//读取文件中的所有行并将所有行放进string数组中
                for (int i = 0; i < lines.Length; i ++)
                {
                    int value = int.Parse(lines[i]);//遍历赋值,返回list的值
                    info.Add(value);
                }
                return info;
            }
           catch(Exception ex)
            {
                return null;
            }
        }
    }
}

五、总结

这篇文章是一篇简单的总结,技术层次不高,只是用了文件的读取,再封装,虽然简单,但是是值得学习和记录的,毕竟要从基础的做起嘛,先小再大,慢慢积累,积少成多,欢迎大家一起交流,虽然这个文章很简单,大家不喜勿喷啊,哈哈哈,点赞评论收藏关注,你的点赞是我更文的动力,如果这篇文章对你有用,点个赞吧。嘿嘿

ainiyo2u