C#文件操作

一、txt文件

1. 写入txt文件

cs 复制代码
File.AppendAllText(@"C:\test.txt", text);  // 向后追加
File.WriteAllText(@"C:\test.txt", text);   // 覆盖之前的数据

2. 读取txt文件

cs 复制代码
string str = File.ReadAllText(@"C:\test.txt"); 

3. 获取当前程序的运行目录

cs 复制代码
string path = Directory.GetCurrentDirectory();

二、 创建文件夹

cs 复制代码
Directory.Exists(path);  // 判断文件夹是否存在
Directory.CreateDirectory(path);  // 创建文件夹

三、csv操作

1. 写入csv文件

cs 复制代码
tring path = @"C:\data.csv";
using(StreamWriter sw = new StreamWriter(path, true, Encoding.Default)){
  StringBuilder sb = new StringBuilder();  // 创建一个字符串实例
  // 写入数据
  sb.Append(textBox1.Text).Append(textBox2.Text).Append(textBox3.Text)
  sw.WriteLine(sb);
  sw.Close();
  sw.Dispose();
}

四、csv封装

cs 复制代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IcCogFrameGrabber连相机
{
    public class FileOperate
    {

        public void SaveData(string data, string result)
        {

            string path = Directory.GetCurrentDirectory() + "\\Data";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            //string fileName = path + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".csv";
            string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";
            if (!File.Exists(fileName))
            {
                //创建文件流,传入文件路径,创建并写入
                FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                //Encoding.Default 编码格式 允许写入中文内容
                StreamWriter sw = new StreamWriter(fs, Encoding.Default);
                //创建StringBuilder类型追加写入信息
                StringBuilder sb = new StringBuilder();
                sb.Append("时间").Append(",").Append("Data").Append(",").Append("Result");
                sw.WriteLine(sb);
                sw.Close();
                sw.Dispose();
                fs.Close();
                fs.Dispose();

            }
            using (StreamWriter sw2 = new StreamWriter(fileName, true, Encoding.Default))
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(DateTime.Now.ToString("HH-mm-ss")).Append(",").Append(data).Append(",").Append(result);
                sw2.WriteLine(sb);
            }

        }

        public string ReadData()
        {
            string path = Directory.GetCurrentDirectory() + "\\Data";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            //string fileName = path + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".csv";
            string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";

            StreamReader sr = new StreamReader(fileName, Encoding.Default);
            string str = sr.ReadToEnd();
            return str;
        }
    }
}

五、自创csv写入方法

cs 复制代码
string data = "1,2,3,4,5\n";
File.AppendAllText(path + "\\data.csv", data);
MessageBox.Show("111");
相关推荐
你怎么知道我是队长35 分钟前
C语言---头文件
c语言·开发语言
期待のcode40 分钟前
Java虚拟机的运行模式
java·开发语言·jvm
我是唐青枫1 小时前
C#.NET ConcurrentDictionary<TKey, TValue> 深度解析:原理与实践
c#·.net
hqwest1 小时前
码上通QT实战25--报警页面01-报警布局设计
开发语言·qt·qwidget·ui设计·qt布局控件
a程序小傲1 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
HellowAmy1 小时前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
徐先生 @_@|||2 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构
tang777893 小时前
爬虫如何绕过绕过“5秒盾”Cloudflare:从浏览器指纹模拟到Rust求解之不完全指南
开发语言·爬虫·rust·cloudflare
Yuer20253 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
hqwest3 小时前
码上通QT实战26--系统设置01-系统设置布局
开发语言·qt·qss·qt基础控件·qt布局控件·qt表格控件