網(wǎng)站首頁 編程語言 正文
前言
在做項目的時候遇到這樣的一個問題,需要我將List中的數(shù)據(jù)讀出來并把數(shù)據(jù)封裝到Txt文件中,也能把Txt文件中的數(shù)據(jù)讀出來放到List集合中,雖然不是很難,但是也很麻煩,這篇文章就是記錄一下,自己寫的代碼,方便自己后期復(fù)習(xí),查閱,有不足的地方,大家一起討論學(xué)習(xí)一下,不喜勿噴,歡迎大家點贊評論收藏,你的點贊是我更文的動力。
一、簡單設(shè)計界面
做一個簡單的界面,兩個觸發(fā)按鈕,對我們寫的代碼,進(jìn)行控制(可以直接跳到后面看代碼)
窗體觸發(fā)函數(shù),雙擊按鈕得到的觸發(fā)函數(shù),編寫觸發(fā)函數(shù)的觸發(fā)條件和邏輯
二、方法函數(shù)講解
總共兩個函數(shù),一個讀,一個寫,分別對應(yīng)不同的代碼,代碼邏輯很簡單,可以直接拷貝使用,也可以根據(jù)自己的需求做更改。代碼在文末
三、效果展示
博主只是模擬一部風(fēng)數(shù)據(jù),將數(shù)據(jù)放進(jìn)list中,再設(shè)置好你需要放置文件的位置,你可以設(shè)置任意位置,調(diào)用函數(shù)將list和文件保存路徑作為參數(shù)傳過去就可以了
生成之后的文件如上圖所示,Txt文件中有100個數(shù)值。接下來我們把這個txt文件中的數(shù)據(jù)再讀出來,封裝進(jìn)List中。
四、代碼邏輯
界面代碼:
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();//調(diào)用方法的聲明
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);//調(diào)用方法
foreach(int i in datalist)//遍歷展示數(shù)據(jù)
{
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個虛擬數(shù)據(jù)測試
{
list.Add(i);
}
dao.SaveData(list, "C:\Users\ASUS\source\repos\IC00520\IC00520\");//將數(shù)據(jù)和文件路徑作為實參
}
}
}
方法類代碼:
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 = "";//數(shù)據(jù)下發(fā)文件名
string Data = "";
foreach (var item in info)//遍歷List數(shù)據(jù)將數(shù)據(jù)保存在Data中
{
Data += item + "\r\n";
}
dataName = "IC00" + DateTime.Now.ToString("yyyy_MM_dd HH_mm_ss")+ ".txt";//以日期創(chuàng)建文件名
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);//讀取文件中的所有行并將所有行放進(jìn)string數(shù)組中
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;
}
}
}
}
五、總結(jié)
這篇文章是一篇簡單的總結(jié),技術(shù)層次不高,只是用了文件的讀取,再封裝,雖然簡單,但是是值得學(xué)習(xí)和記錄的,畢竟要從基礎(chǔ)的做起嘛,先小再大,慢慢積累,積少成多
原文鏈接:https://juejin.cn/post/7129886486798794766
相關(guān)推薦
- 2022-04-27 Quarkus集成redis操作Redisson實現(xiàn)數(shù)據(jù)互通_Redis
- 2022-05-01 C#使用log4net打日志_C#教程
- 2023-03-15 Android?Studio?全局查找問題_Android
- 2022-07-22 解決安裝時間序列分析庫fbprophet
- 2022-02-20 Ubuntu18.04更改apt源為阿里云源的詳細(xì)過程_Linux
- 2022-07-11 SOC驗證環(huán)境的啟動方式
- 2022-11-03 C++中Covariant返回值類型詳解_C 語言
- 2022-10-11 兩臺主機(jī)的vmware虛擬機(jī)相互連通的實現(xiàn)步驟_VMware
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支