• ASP.NET在本地服务器上创建目录并在该目录下写文件(转)


    代码
    public static Boolean WriteTextFile(string content, string filepath,string name)
        {
            FileStream fs;
            StreamWriter sw;
            
    if (!System.IO.Directory.Exists(filepath))
            {
              DirectoryInfo DirInfo 
    = Directory.CreateDirectory(filepath); //创建目录
               DirInfo.Attributes = FileAttributes.Normal; 
            }
            
    string fullpath = filepath  + name + ".txt";
            
    if (File.Exists(fullpath))//验证文件是否存在
                {
                    
    return false;
                }
                
    else
                {
                    fs 
    = new FileStream(fullpath, FileMode.Create, FileAccess.Write);
                    sw 
    = new StreamWriter(fs,System.Text.Encoding.Default);
                    sw.WriteLine(content);
                    sw.Close();
                    fs.Close();
                    
    return true;

                }
        }

    在做这个相关工作的时候 还碰到一个问题就是 用一下方法读取中文文本文件时,出现乱码的现象:

    代码
    public static String ReadTextFile(string filepath)   
        {   
      
      
            StreamReader objReader 
    = new StreamReader(filepath);   
            
    string sLine = "";   
            ArrayList arrText 
    = new ArrayList();   
      
            
    while (sLine != null)   
            {   
                sLine 
    = objReader.ReadLine();   
                
    if (sLine != null)   
                    arrText.Add(sLine);   
            }   
            objReader.Close();   
            StringBuilder sb 
    = new StringBuilder();   
      
            
    foreach (string sOutput in arrText)   
                sb.Append(sOutput);   
      
            
    return sb.ToString();   
        }  

    查询资料 发现对上面代码中的StreamReader修改一下,如下代码:

    代码
    public static String ReadTextFile(string filepath)   
       {   
      
      
           StreamReader objReader 
    = new StreamReader(filepath, System.Text.Encoding.Default);   
           
    string sLine = "";   
           ArrayList arrText 
    = new ArrayList();   
      
           
    while (sLine != null)   
           {   
               sLine 
    = objReader.ReadLine();   
               
    if (sLine != null)   
                   arrText.Add(sLine);   
           }   
           objReader.Close();   
           StringBuilder sb 
    = new StringBuilder();   
      
           
    foreach (string sOutput in arrText)   
               sb.Append(sOutput);   
      
           
    return sb.ToString();   
       }  

    则没有出现乱码的情况,同理 在写文件的时候,也要这样写:

    sw = new StreamWriter(fs,System.Text.Encoding.Default);

    如果这样写:

    sw = new StreamWriter(fs);

    能够写出新的文件,在windows里面打开也和普通文件没有差别,但是在读取的时候会出现认不出中文的情况.这个问题在全文检索系统中困扰了一阵子,就是用sw = new StreamWriter(fs);写进去的文章 检索不出来,可能就是编码不匹配造成的

  • 相关阅读:
    让Android模拟器速度飞起来_Eclipse+BlueStacks调试Android应用【2012-10-30】
    开源镜像站-Android镜像
    字符编码的几篇文章
    [C/C++]_[Unicode转Utf8,Ansi转Unicode,Ansi文件转Utf8文件]
    MSVC下快速Unicode I/O
    edltplus使用正则表达式替换多余空行
    修改CMD的编码
    windows 安裝 gcc 編譯器
    CF369 C(递归 + 回溯)
    VIM支持系统剪切板
  • 原文地址:https://www.cnblogs.com/lann/p/1641272.html
Copyright © 2020-2023  润新知