您的位置:首页 > 编程语言 > C#

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

2015-03-06 22:39 706 查看
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)为内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: