C# 文本文件读写操作方法

作者:袖梨 2022-06-25

托管和非托管的应用程序最常使用的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();
  }
}
}

我们来看文件合并操作


class FileCombine
{
     public void CombineFile(String[] infileName,String outfileName)
     {    
            int b;
            int n=infileName.Length;
            FileStream[] fileIn=new FileStream[n];
            using (FileStream fileOut = new FileStream(outfileName, FileMode.Create))
            {
                for (int i = 0; i < n; i++)
                {
                    try
                    {
                        fileIn[i] = new FileStream(infileName[i], FileMode.Open);
                        while ((b = fileIn[i].ReadByte()) != -1)
                            fileOut.WriteByte((byte)b);
                    }
                    catch (System.Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        fileIn[i].Close();
                    }
                   
                }
            }
     }
}

调用方法如下:

class TestCombine
{
     public static void Main(String[] args)
     {
         FileCombine c=new FileCombine();
         String[] file=new String[2];
         file[0]="aa.txt";
         file[1]="bb.txt";
         c.CombineFile(file,"cc.txt");
    }
}

/**
* 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
*/

生成静态页面文件

根据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("恭喜" + fileName + "已经生成,保存在htm文件夹下!");
}

相关文章

精彩推荐