zoukankan      html  css  js  c++  java
  • 读写文本文件,乱码解决方案

    在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。只需要在读取出来的时候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(string filename,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(string filename,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(string filename,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;
                }
            }
  • 相关阅读:
    实现高效易用的java操作mysql包装
    部分NLuke版本源码更新(2009111)
    ASP.NET Forms验证的安全性问题研究——为什么加密代码需要配置为服务
    VirtualBox 虚拟机 Debian系统上安装Cassandra步骤及遇到的问题
    mysql master/slave 使用感受
    一个不必要的设计
    应对服务器端访问限制的一些办法(Cookie,Session,IP等)
    qq四国军旗2.1 beat03 builde017记牌器开发思路(一)
    MVC与WebForm最大的区别
    dell笔记本的Broadcom 802.11b/g 无线网卡ubuntu 9.10下安装
  • 原文地址:https://www.cnblogs.com/ghgxm520/p/8340841.html
Copyright © 2011-2022 走看看