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;
                }
            }
  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/ghgxm520/p/8340841.html
Copyright © 2011-2022 走看看