c#文件读写操作

来源:互联网 发布:淘宝开店怎么收费标准 编辑:程序博客网 时间:2024/04/25 07:38

c++读写文件有时数据量比较大的情况下,ifstream.good()会失败,因此,在数据量比较大的情况下,iostream就不适用。于是,考虑用c#来操作文件读写,下面是个例子程序:

using System;using System.Collections.Generic;using System.Text;using System.IO;namespace ReadFile{    class Program    {        static void Main(string[] args)        {            FileStream ifs = new FileStream("export.sql",FileMode.Open);            FileStream ofs = new FileStream("other.sql",FileMode.Open);            FileStream ofs_pybknm = new FileStream("pybknm.sql", FileMode.Open);            StreamReader sr = new StreamReader(ifs, System.Text.Encoding.Default);            StreamWriter sw = new StreamWriter(ofs, System.Text.Encoding.UTF8);            StreamWriter sw_pybknm = new StreamWriter(ofs_pybknm, System.Text.Encoding.UTF8);            sr.BaseStream.Seek(0, SeekOrigin.Begin);            String strLine=null;            int cnt = 0;            int[] a = new int[1000000];            int i = 0;            while ((strLine = sr.ReadLine()) != null)            {                cnt++;                if (strLine.Contains("pybknm"))                {                    //第155926-271446行是pybknm表的数据                    sw_pybknm.WriteLine(strLine);                }                else                    sw.WriteLine(strLine);                if (strLine.Contains("yltran_yecx"))                    a[i++] = cnt;                strLine = null;            }            Console.WriteLine("i=" + i);            Console.WriteLine(a[0]);            for (int j = 0; j < i - 1; j++)            {                if (a[j] + 1 != a[j + 1])                {                    Console.WriteLine(a[j]);                    Console.WriteLine(a[j + 1]);                }            }            if(i>=1)                Console.WriteLine(a[i - 1]);            Console.Write(cnt);            Console.ReadLine();        }    }}


 

原创粉丝点击