zoukankan      html  css  js  c++  java
  • [zt]简单的c#文本文件读写

    System.IO命名空间中的类为托管应用程序提供文件以及其他形式的输入输出。托管i/o的基本构件是流,而流是字节导向的数据的抽象表示。

    流通过System.IO.Stream类表示.

    System.IO.FileStream允许将文件作为流访问;

    System.IO.MemoryStream允许将内存块作为流进行访问;…………

    托管和非托管的应用程序最常使用的IO形式是文件IO。托管应用程序读写文件的一般步骤如下

    1、用FileStream对象打开文件

    2、进行二进制读写操作,在FileStream对象周围包装BinaryReader和BinaryWriter的实例,并调用BinaryReader和BinaryWriter方法执行输入

    输出。

    3、要读写文本,在FileStream对象的周围包装一个StreamReader和StreamWriter,然后使用StreamReader和StreamWriter方法完成输入输出。

    4、关闭FileStream对象。

    下面是一个简单的文本文件读操作

    using System;
    using System.IO;

    class FileTest
    {
    static void Main(string [] args)
    {
        string filename="testfile.txt";
        //打开文件并显示其内容
        StreamReader reader=null;
        try
        {
         reader=new StreamReader(filename);
         for(string line=reader.ReadLine();line!=null;line=reader.ReadLine())
          Console.WriteLine(line);
        }

    catch(IOException e)
        {
         Console.WriteLine(e.Message);
        }
        finally
        {
         if(reader!=null)
          reader.Close();
        }
    }
    }
    /**
    * FCL是一个非常丰富的类库,所以还有许多打开文件并进行读取的方法,比如
    * 1.用File.open创建一个FileStream,并围绕它包装一个StreamReader
    * FileStream stream=File.Open(filename,FileMode.Open,FileAccess.Read);
    * StreamReader reader=new StreamReaderaa(stream);
    * 2.使用File.OpenText,在一步内创建一个FileStream和一个StreamReader
    * StreamReader reader=File.OpenText(filename);
    * 当然,还有其他的方法
    * 若要对文本进行写入操作,可以使用StreamWriter
    */

    其中的异常处理是为了防止意外的事情发生,如传递给StreamReader的构造函数的文件名非法,或者在执行raeder.Close();前匡架引发异常等

    //根据模板生成,保持在html文件夹中(部分源码搜集于网络)
            protected void Button1_Click(object sender, EventArgs e)
            {
                
    //源码是替换掉模板中的特征字符

                
    string mbPath =Server.MapPath("template.htm");
                Encoding code 
    = Encoding.GetEncoding("gb2312");
                StreamReader sr 
    = null;
                StreamWriter sw 
    = null;
                
    string str = null;

                
    //读取
                try
                {
                    sr 
    = new StreamReader(mbPath, code);
                    str 
    = sr.ReadToEnd();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sr.Close();
                }

                
    //根据时间自动重命名,扩展名也可以自行修改
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss"+ ".htm";
                str 
    = str.Replace("$title$", txtTitle.Text);//替换Title
                str = str.Replace("$content$", txtContent.Text);//替换content

                
    //生成静态文件
                try
                {
                    sw 
    = new StreamWriter(Server.MapPath("htm/"+ fileName, false, code);
                    sw.Write(str);
                    sw.Flush();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sw.Close();
                    Response.Write(
    "恭喜<a href=htm/"+fileName+" target=_blank>"+fileName+"</a>已经生成,保存在htm文件夹下!");
                }


            }

    根据Url地址生成静态页保持

    //根据Url地址生成静态页保持
            protected void Button2_Click(object sender, EventArgs e)
            {
                Encoding code 
    = Encoding.GetEncoding("utf-8");
                StreamReader sr 
    = null;
                StreamWriter sw 
    = null;
                
    string str = null;

                
    //读取远程路径
                WebRequest temp = WebRequest.Create(txtUrl.Text.Trim());
                WebResponse myTemp 
    = temp.GetResponse();
                sr 
    = new StreamReader(myTemp.GetResponseStream(), code);
                
    //读取
                try
                {
                    sr 
    = new StreamReader(myTemp.GetResponseStream(), code);
                    str 
    = sr.ReadToEnd();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sr.Close();
                }
                
    string fileName = DateTime.Now.ToString("yyyyMMddHHmmss"+ ".htm";

                
    //写入
                try
                {
                    sw 
    = new StreamWriter(Server.MapPath("htm/"+ fileName, false, code);
                    sw.Write(str);
                    sw.Flush();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sw.Close();
                    Response.Write(
    "恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!");
                }
  • 相关阅读:
    jq clone 克隆方法偶遇问题
    截取字符串加省略号
    瀑布流页面效果
    js 函数节流 jQuery throttle/debounce
    手机浏览页面touch操作,解决touch事件和浏览器滚动条冲突问题;zepto,swipe事件。
    touch 方向判断方法
    thinkPHP 导入栗子 (2)
    百度地图的使用实例-php+jq
    mac上配置react-native环境run-ios/run-android命令遇到的问题
    npm、cnpm、yarn 安装删除异同
  • 原文地址:https://www.cnblogs.com/Excellent/p/756397.html
Copyright © 2011-2022 走看看