C#之四十二 C# 读写文本文件乱码解决方案

举报
tea_year 发表于 2021/12/30 00:12:18 2021/12/30
【摘要】 C#程序设计及宿舍管理系统实战  https://edu.csdn.net/course/detail/27107 在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。只需要在读取出来的时候StreamReader加一个编码就可以了。代码如下:using System.IO;Stream...

C#程序设计及宿舍管理系统实战 

https://edu.csdn.net/course/detail/27107


  
  1. 在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。只需要在读取出来的时候StreamReader加一个编码就可以了。代码如下:
  2. using System.IO;
  3. StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//fileName为文件的绝对路径
  4. 由于C#操作文件的内容网上有很多,我就不详细说明了,下面给出两个函数,分别用来读取和写入文本文件,记得引用System.IO;
  5. /// <summary>
  6. /// 功能:
  7. /// 在指定的文件filename处生成该文件,并且以内容content来填充。
  8. /// </summary>
  9. /// <param name="filename">文件名</param>
  10. /// <paramname="content">文件内容</param>
  11. public static void CreateFile(stringfilename,string content)
  12. {
  13. try
  14. {
  15. /*这个构造函数的具体含义:在指定的文件fileName处,第二个参数表示是否将内容追加到文件。如果文件存在,并且第二个参数append为false,那么将改写文件,如果append为true,则在末尾加入内容,如果文件不存在,则创建该文件,并且填充内容。所以就算文件不存在,我们这样创建文本文件也是没有问题的。*/
  16. StreamWriter sw = newStreamWriter(filename,false,Encoding.GetEncoding("gb2312"));
  17. sw.Write(content);
  18. sw.Flush();
  19. sw.Close();
  20. }
  21. catch(IOException ioe)
  22. {
  23. throw ioe;
  24. }
  25. }
  26. /// <summary>
  27. /// 功能:
  28. /// 在文件的最前面加入内容content
  29. /// </summary>
  30. /// <paramname="filename">文件名</param>
  31. /// <paramname="content">插入的内容</param>
  32. public static void InsertFile(stringfilename,string content)
  33. {
  34. try
  35. {
  36. StreamReader sr = newStreamReader(filename,Encoding.GetEncoding("gb2312"));
  37. content+= sr.ReadToEnd();
  38. sr.Close();
  39. CreateFile(filename,content);
  40. }
  41. catch(IOException ioe)
  42. {
  43. throw ioe;
  44. }
  45. }
  46. /// <summary>
  47. /// 功能:
  48. /// 在文件末尾增加指定内容content
  49. /// </summary>
  50. /// <paramname="filename">文件名</param>
  51. /// <paramname="content">新增内容</param>
  52. public static void AppendFile(stringfilename,string content)
  53. {
  54. try
  55. {
  56. string filecontent = "";
  57. StreamReader sr = newStreamReader(filename,Encoding.GetEncoding("gb2312"));
  58. filecontent += sr.ReadToEnd() + content;//如果要保持文件格式则必须这么读,不能一行一行读!
  59. sr.Close();
  60. CreateFile(filename,filecontent);
  61. }
  62. catch(IOException ioe)
  63. {
  64. throw ioe;
  65. }
  66. }

 

 

 

 

 

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/51558793

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。