C#创建、读以及写文件操作

1.创建文件
根路径自己决定,如果是一个项目一定有相关的API获取该项目所在硬盘的完整物理路径。创建文件时一般先会判断是否存在指定的文件,没有则创建,执行以下代码后可查看D盘根路径。

string path = "D:\\";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff")+".txt";//以时间戳作为文件名
File.Create(path + fileName);//若存在指定的文件会覆盖原有文件

在这里插入图片描述
2.txt文件写入
文件写入有多种模式,这里介绍用的比较多的Append模式,Append模式只能在行尾添加数据且不允许读取,执行以下代码查看效果

FileStream fs = new FileStream("D:\\201905231220084594.txt",FileMode.Append);//若指定文件不存在会抛出异常
StreamWriter sw = new StreamWriter(fs);
sw.Write("测试代码写入操作1");//指定Append模式不允许进行读取,且写入的数据从文件尾开始
sw.WriteLine("测试代码写入操作2");//写完自动加个换行
sw.Write("测试代码写入操作3");
sw.Flush();
sw.Close();
fs.Close();

在这里插入图片描述

3.txt文件读取
读取文件时有一个偏移指针,通过调用Peek方法向后移动,若到达尾部返回-1

FileStream fs = new FileStream("D:\\201905231220084594.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
Console.WriteLine(sr.ReadToEnd());//从头读到尾,还有读取一行的,读取一位的,
sr.Close();
fs.Close();
Console.Read();

在这里插入图片描述
4.ini文件读取
其实txt文件没有什么好说的,程序需要的数据一般都会用配置文件来保存,比如ini或者xml。下面着重介绍这两个类型的文件读写。
(1)创建ini文件,方法同创建txt文件,执行以下代码

string path = "D:\\";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff")+".ini";
File.Create(path + fileName);//若存在指定的文件会覆盖原有文件

在这里插入图片描述
(2)写入ini文件
简单说下ini文件的概念。INI文件由节、键、值组成,可以有注释,分号后面的这一行均为注释,如以下形式
;这是section1
[section1]
key1=value1
key2=value2
;这是section2
[section2]
key1=value1
key2=value2
section1和section2就是节,key为键,value为键对应的值
注意点: 不同节下可以有相同的键
相同节下若存在多个相同的键,只有第一个键有效。
若存在多个相同的节,只有第一个节有效
这些影响并不会使程序出现异常

static void Main(string[] args)
{
	WritePrivateProfileString("section1", "key1", "value1", "D:\\201905231333350821.ini");
	WritePrivateProfileString("section1", "key2", "value2", "D:\\201905231333350821.ini");
	WritePrivateProfileString("section2", "key1", "value1", "D:\\201905231333350821.ini");
	WritePrivateProfileString("section2", "key2", "value2", "D:\\201905231333350821.ini");
}
/**
     * 调用windowsAPI实现读写ini配置文件
     * 参数说明:
     * section:写入指定的节,若没有则自动创建
     * key:键名
     * val:值
     * filePath:指定ini文件的路径
     */
    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    /***
     * 参数说明
     * section:指定要读取的节
     * key:指定要读取的键
     * defVal:若没有读取到值,则返回值为该参数值
     * retVal:实际的返回值由该参数保存
     * size:指定返回值的最大长度,若key1=value1,则长度至少为12才能读取完整
     * filePath:指定读取的ini文件路径
     */
    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath); 
    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section, string key, string defVal, Byte[] retVal, int size, string filePath);

在这里插入图片描述
(3)读取ini配置文件

StringBuilder sb = new StringBuilder();
GetPrivateProfileString("section1", "key1", "defaultValue", sb, 255, "D:\\201905231333350821.ini");
Console.WriteLine(sb);
GetPrivateProfileString("section1", "key3", "defaultValue", sb, 255, "D:\\201905231333350821.ini");
Console.WriteLine(sb);
Console.Read();

在这里插入图片描述

5.xml文件读写
xml的说明在我的另一个博客上有很详细的说明,这里不再赘述https://blog.csdn.net/listennerBGM/article/details/88874757

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值