C# IO流读写文件操作

C# IO流读写文件操作

1、创建文件流

2、创建文件读写器

3、执行读写操作

4、关闭文件读写器和文件流

1、创建文件流

string filePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\TextFile1.txt";//文件相对路径
string filePath2 = @"D:\file\TextFile2.txt";//文件绝对路径
FileStream fs =new FileStream( filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite) ;

PS:“\”在C#中表示转译,所以我们在写文件路径是不能直接以这样的形式写(“D:\files”),我们可以在“”号的前面加一个@符号来取消转译,也可以用”\”来代替“\”

FileMode指定文件的打开方式

  • Create:用指定的名称新建一个文件,如果文件已存在则覆盖原有的文件
  • CreateNew:新建一个文件,如果文件已存在会报异常提示文件已存在
  • Open:打开一个文件,使用这个枚举是文件必须已存在,否则会报异常
  • OpenOrCreate:与Open成员类似,如果文件不存在则用指定的名称新建一个文件并打开它
  • Appen:打开现有文件,并在末尾追加新的内容。

FileAccess文件的访问权限

  • Read:可从文件读取数据的访问权限
  • Write:可将数据写入文件的访问权限
  • ReadWrite:可从文件读取数据和将数据写入文件的访问权限

2、创建文件读写器

创建文件写入器

//参数一:创建的文件流对象
//参数二:true表示追加,false表示覆盖
StreamWriter sw=New StreamWriter(fs,true);

常用方法:

  • sw.Write():用于写入流
  • sw.WriteLine():用于写入一行数据,写入某些数据后跟换行符
  • sw.Close():用于关闭写入器

创建文件读取器

StreamReader sr = new StreamReader(fs,Encoding.Default);//fs:文件流对象

常用方法:

  • sr.ReadLIne():读取文件流中的一行数据,并返回字符串
  • sr.ReadToEnd():从当前位置读到末尾,返回字符串
  • sr.Close();用于关闭读取器。

Encoding指定编码格式防止中文乱码

  • Default表示获取操作系统当前的编码格式
  • UTF-8表示获取UTF-8格式的编码

3、执行读写操作

try
{
    String content = String.Empty;
    while ((content = sr.ReadLine()) != null)//读取文件一每一行数据
    {
        content = content.Trim().ToString();
        sw.WriteLine(content);//一行一行地写入文件二
    }
}
catch
{
    Console.WriteLine("读取内容到文件方法错误");
}

4、关闭文件读写器和文件流

1、关闭文件读写器和文件流一定要写在finally里面,无论是否有异常都要关闭

2、先打开的后关闭,后打开的先关闭,如果a流依赖b流,那么应该先关a流再关b流

3、当然完全可以只关闭处理流,不用关闭节点流。处理流关闭的时候,会调用其处理的节点流的关闭方法;如果将节点流关闭以后再关闭处理流,会抛出IO异常

finally
{
    if (sw != null)//关闭文件写入器
    {
        sw.Close();
    }
    if (sr != null)//关闭文件读取器
    {
        sr.Close();
    }
    if (fs != null)//关闭文件流
    {
        fs.Close();
    }
}
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值