[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/archive/2007/05/23/756397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值