关闭

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

标签: 解决方案乱码编码
359人阅读 评论(0) 收藏 举报
分类:

在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。只需要在读取出来的时候StreamReader加一个编码就可以了。代码如下:
using System.IO;
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//fileName为文件的绝对路径

由于C#操作文件的内容网上有很多,我就不详细说明了,下面给出两个函数,分别用来读取和写入文本文件,记得引用System.IO;
/// <summary>
        /// 功能:
        /// 在指定的文件filename处生成该文件,并且以内容content来填充。
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <paramname="content">文件内容</param>
        public static void CreateFile(stringfilename,string content)
        {
            try
            {
/*这个构造函数的具体含义:在指定的文件fileName处,第二个参数表示是否将内容追加到文件。如果文件存在,并且第二个参数append为false,那么将改写文件,如果append为true,则在末尾加入内容,如果文件不存在,则创建该文件,并且填充内容。所以就算文件不存在,我们这样创建文本文件也是没有问题的。*/
StreamWriter sw = newStreamWriter(filename,false,Encoding.GetEncoding("gb2312"));
               sw.Write(content);
               sw.Flush();
               sw.Close();
            }
            catch(IOException ioe)
            {
               throw ioe;
            }
        }

/// <summary>
        /// 功能:
        /// 在文件的最前面加入内容content
        /// </summary>
        /// <paramname="filename">文件名</param>
        /// <paramname="content">插入的内容</param>
        public static void InsertFile(stringfilename,string content)
        {
            try
            {
               StreamReader sr = newStreamReader(filename,Encoding.GetEncoding("gb2312"));
                content+= sr.ReadToEnd();
               sr.Close();
               CreateFile(filename,content);

            }
            catch(IOException ioe)
            {
               throw ioe;
            }
        }
        /// <summary>
        /// 功能:
        /// 在文件末尾增加指定内容content
        /// </summary>
        /// <paramname="filename">文件名</param>
        /// <paramname="content">新增内容</param>
        public static void AppendFile(stringfilename,string content)
        {
            try
            {
               string filecontent = "";
               StreamReader sr = newStreamReader(filename,Encoding.GetEncoding("gb2312"));
               filecontent += sr.ReadToEnd() + content;//如果要保持文件格式则必须这么读,不能一行一行读!
               sr.Close();
               CreateFile(filename,filecontent);

            }
            catch(IOException ioe)
            {
               throw ioe;
            }
        }


0
0
查看评论

C# 读写文本文件乱码解决方案

在使用C#对文本文件读取的时候,如果其中包含了中文,经常会出现乱码。一般解决是在StreamReader加一个编码,我使用的是Encoding.UTF8,一般情况下使用这个参数就可以。但是,在这次我使用UTF8却无效。而且使用,unicode和UTF32都会使用StreamReader的EndOfS...
  • onlyzkg
  • onlyzkg
  • 2014-10-08 21:28
  • 383

C#读写文件中文乱码

读写文件的时候,文件中存在中文字符; 直接读取会出现乱码,然后一搜索网上的各种乱码处理方法,大多数是对读取的string进行转码。 其实有一种简单的方法,就是直接在读取的时候就设置编码,代码如下: FileStream aFile = new FileStream(SingleFile...
  • u012348774
  • u012348774
  • 2015-11-06 10:40
  • 1670

c# 读写文本文件(一般用于日志文件的编程)

命名空间要加上 using System.Text;using System.IO;StreamWriter sw = new StreamWriter("MyTest.txt",false,Encoding....
  • zongxiangni
  • zongxiangni
  • 2006-09-11 16:39
  • 2173

C# 读取 TXT文件的时候中文乱码解决方法

用C#编写notepad时,读取文件时发现英文显示正常,但是中文就是一个一个方框。如果把txt转换成UTF-8格式时读取就正常,so怀疑是编码问题,仔细查了查帮助,发现Default的说明是“获取系统的当前 ANSI 代码页的编码”,就用了下,果然不是乱码了。所以解决办法就是如下定义StreamRe...
  • qq_23502409
  • qq_23502409
  • 2017-09-15 13:38
  • 1280

读写文本文件(C#)

读操作:using System;using System.IO; namespace ConsoleApplication2{ ///  /// Summary description for Class2. ///  public class C...
  • cesium
  • cesium
  • 2007-04-27 20:56
  • 659

C# Stream读写文本文件

using System.IO; private void btnWrite_Click(object sender, EventArgs e) { using (StreamWriter pStreamWriter = new StreamWriter(@"d:\test.txt&q...
  • lab2013
  • lab2013
  • 2012-01-06 10:11
  • 3754

C#读写文本文件

读取文本文件:  public string GetTxtContents(string file)  ...{   StringBuilder allText = ne...
  • czhrf
  • czhrf
  • 2006-11-23 14:08
  • 509

C#高级编程:读写文本文件

C#高级编程:读写文本文件 理论上,可以使用FileStream类读取和显示文本文件。前面已经介绍了这个类。上面显示NewFile.txt文件的格式不太容易理解,但这并不是FileStream类的问题——而在于我们在文本框中显示结果所使用的方式。如果知道某个文件包含文本,通常就可以使用StreamR...
  • jiljil
  • jiljil
  • 2008-11-15 13:31
  • 347

c#读写文本文件

/// /// 写入文本文件 /// /// 要写入的内容 public static void Write(string content) { //文件存放目录 string fileFolder = @"d:\...
  • lang10217
  • lang10217
  • 2014-07-05 20:06
  • 309

C#读写文本文件小结

 <br />除了创建、复制、移动和删除外,对文本文件最常用的操作就是进行读写,C#提供了非常多的方法来对文本文件进行读写,今天我们做个小结:<br />一、写入文件<br />1.File类的静态方法WriteAllText(改写方式)<br /...
  • pkushinhwa
  • pkushinhwa
  • 2010-06-25 13:16
  • 217