[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文件夹下!");
            }
原文地址:https://www.cnblogs.com/Excellent/p/756397.html