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)为内容
2.StreamWriter 在非追加模式下,默认使用UTF8编码写入,可以指定编码方式,原文件内容清空,并且会修改原文件的BOM标记为当前编码对应的BOM头标记;
StreamWriter在追加模式下,默认使用UTF8编码写入,可以指定编码方式,如果原文件内容为空并且没有BOM标记,则会添加当前编码BOM标记,如果原文件有BOM头标记或内容不为空,则不会修改原BOM头,直接以当前指定编码写入
3.StreamReader可以通过重载实现自动检测文件BOM头,如果没有设置 自动检测BOM头,则默认以UTF8编码读取,此时对于UCS编码文件会读入编码标记头(FEFF或FFFE)为内容
相关文章推荐
- C#.net 用 StreamReader 和 StreamWriter 读写文件
- c#FileStream文件读写
- C# FileStream 文件读写(转)
- C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、DirectoryInfo、Path、Encoding)
- c#FileStream文件读写
- c#FileStream文件读写
- c#FileStream文件读写(转)
- C# FileStream 文件读写(转)
- C# FileStream 文件读写(转)
- C# FileStream文件读写
- C# 读写文件(StreamRead,StreamWrite,File,FileStream)
- c#FileStream文件读写
- c#FileStream文件读写
- c#读写文件的几种方式StreamReader、StreamWriter、FileStream
- c#FileStream文件读写.以及filestream,file和FileInfo的区别
- c#FileStream文件读写
- C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、directoryInfo、Path、Encoding)
- c#FileStream文件读写
- C#FileStream 读写文件,StreamRead StreamWrite
- C# FileStream 文件读写(转)