C#大文件读取写入

2020-02-20  本文已影响0人  之乎者也QAQ

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

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 不需要考虑文件的编码问题
        /// <summary>
        /// 写文件
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="Content">读取的字符串</param>
        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);
                    }
                }
            }

         }
       }
   }

上一篇下一篇

猜你喜欢

热点阅读