C# FileStream、StreamWriter、StreamReader读写文件时BOM头问题

1.FileStream 不考虑编码,读写都是字节,如果文件有BOM(Byte Order Mark)标记,则需要考虑去除BOM头标记 并根据BOM头自行解码文件

2.StreamWriter 在非追加模式下,默认使用UTF8编码写入,可以指定编码方式,原文件内容清空,并且会修改原文件的BOM标记为当前编码对应的BOM头标记;

StreamWriter在追加模式下,默认使用UTF8编码写入,可以指定编码方式,如果原文件内容为空并且没有BOM标记,则会添加当前编码BOM标记,如果原文件有BOM头标记或内容不为空,则不会修改原BOM头,直接以当前指定编码写入

3.StreamReader可以通过重载实现自动检测文件BOM头,如果没有设置 自动检测BOM头,则默认以UTF8编码读取,此时对于UCS编码文件会读入编码标记头(FEFF或FFFE)为内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值