【超详细】using语句

目录

using语句

1.文件写入中using的语法格式

1.1.基础格式(单个资源)

1.2.嵌套格式(多个资源,常用于文件写入)

2.using用于文件写入的核心作用

3.使用场景

3.1.所有需要手动释放资源的文件操作

(1)写入文本文件(StreamWriter)

(2)写入二进制文件(FileStream)

(3)分块读取大文件(FileStream逐步读写)

3.2.多模式文件写入

3.3.处理大文件

4.注意事项

4.1.资源类型必须实现IDisposable

4.2.作用域内使用资源,不可越界

4.3.嵌套using的缩进规范

4.4.配合try-catch处理异常

4.5.与简化方法的区别

4.6.Unity中的特殊注意

5.总结


       本篇文章分享一下using语句。在C#中,using语句是处理文件写入(及其他资源操作)的重要语法,它的核心作用是自动释放资源,避免因忘记关闭文件而导致的资源泄漏(如文件被锁定、内存占用过高等)。掌握using语句是写出安全、高效文件操作代码的基础。

using语句

1.文件写入中using的语法格式

       using语句在文件写入中有两种常见形式,核心都是围绕“资源的创建→使用→自动释放”流程。

1.1.基础格式(单个资源)

using (资源对象 = new 资源类型(参数))
{
    //操作资源的代码(如写入文件)
}

1)资源对象:通常是FileStream(文件流)、StreamWriter(文本写入器)等需要手动释放的对象

2)资源类型:必须是实现了IDisposable接口的类型(C#中所有IO相关类都满足,如FileStream、StreamWriter)。

3)大括号{}:定义using的作用域,代码执行完作用域内的内容后,会自动调用资源对象的Dispose()方法释放资源(即使发生异常)。

1.2.嵌套格式(多个资源,常用于文件写入)

       文件写入时,通常需要同时使用FileStream(进行底层文件操作)和StreamWriter(进行文本处理),此时可以嵌套using:

//外层:创建文件流(与操作系统交互)
using (FileStream fs = new FileStream("test.txt", FileMode.Create, FileAccess.Write))
//内层:创建文本写入器(基于文件流处理文本)
using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
{
    //写入操作
    sw.Write("Hello, using!");
}

       内层using完全依赖外层资源(StreamWriter依赖FileStream),嵌套确保外层资源不会被提前释放。执行顺序:先执行内层代码,结束后先释放StreamWriter,再释放FileStream

2.using用于文件写入的核心作用

       简单说,using解决了最容易犯的问题:忘记关闭文件。如果不使用using,需要手动调用:

FileStream fs = new FileStream("test.txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write("内容");
//必须手动关闭,否则文件会被锁定
sw.Close(); 
fs.Close(); 

       using会自动执行关闭操作,即使代码中出现异常(如写入一半报错),也能保证文件被正确关闭,避免文件被永久锁定(无法删除或再次打开)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值