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)为内容