C#大文件读取写入

接上一篇文章,继续大文件的问题

1.这次我还是创建控制台程序,按自己需求自定义数组的大小读取

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace 文件的读写
{
    class Program
    {
        static void Main(string[] args)
        {    
            using (Stream fs = new FileStream(@"C: \Users\xg\Desktop\计划表.txt", FileMode.Open))
            {
                string path = @"C: \Users\xg\Desktop\bb.txt";
                byte[] bytes = new byte[1024 * 1024];
                int len;
                while ((len = fs.Read(bytes, 0, bytes.Length)) > 0)
                {
                    string s = Encoding.GetEncoding("utf-8").GetString(bytes, 0, len);
                    Console.Write(s);
                    MyStreamWriter(path, s);
                }
            }
        //使用StreamWrite  StreamReader 不需要考虑文件的编码问题
        /// 
        /// 写文件
        /// 
        /// 文件路径
        /// 读取的字符串
        static void MyStreamWriter(string path, string Content)
        {
            using (Stream inStream = new FileStream(path, FileMode.Create))
            using (StreamWriter write = new StreamWriter(inStream))
            {
                write.WriteLine(Content);
            }
        }
     }
}


2.创建一个控制程序,逐行读取大文件,写入目标文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace 文件的读写
{
    class Program
    {
        static void Main(string[] args)
        {
  string ss = @"C:\Users\xg\Desktop\计划表.txt";
            MyStreamReader2(ss);
 static void MyStreamReader2(string path)
        {
            string file = @"C: \Users\xg\Desktop\cb.txt";
            StringBuilder sb = new StringBuilder();
            using (Stream outStream = new FileStream(path, FileMode.Open))//打开文件流
            using (StreamReader reader = new StreamReader(outStream, Encoding.GetEncoding("utf-8")))//读文件流
            {
                while (reader.Peek() > -1)//读下一个字符返货是否字符个数为0 
                {
                    sb = sb.AppendLine(reader.ReadLine());//读取一行
                   using (Stream inStream = new FileStream(file, FileMode.Create))
                    using (StreamWriter write = new StreamWriter(inStream))
                    {
                        write.WriteLine(sb);
                    }
                }
            }

         }
       }
   }

你可能感兴趣的:(C#大文件读取写入)