C#利用缓存分块读写大文件

C#利用缓存分块读写大文件,供大家参考,具体内容如下

在日常生活中,可能会遇到大文件的读取,不论是什么格式,按照储存文件的格式读取大文件,就会在Buffer中看到相关的文件头合内容, 以一次.txt文件存取为例。

using System.IO;

首先创建demo文件,此处文件大小没关系,只是演示

 private void button2_Click(object sender, EventArgs e)
    {
      using (FileStream fsWrite = new FileStream(@"D:\1.txt", FileMode.Append))
      {
        string temp = "";
        for (int i = 0; i < 10000;i++ )
        {
          temp += i.ToString()+"/t";

        }
        byte [] m = System.Text.Encoding.UTF8.GetBytes (temp);
        fsWrite.Write(m, 0, temp.Length);
      }
    }

读取创建的文件

private void Readtxt()
{
  using (FileStream fsRead = new FileStream(@"d:\2.txt,FileMode.Open"))
  {
    //剩余文件内容长度
    long leftLength = fsRead.Length;
    //buffersize
    int buffersize = 1024;
    //创建缓存数组
    byte[] buffer = new byte[buffersize];
    int rNum = 0;
    int FileStart = 0;
    while(leftLength > 0)
    {
      //设置文件流的读取位置
      fsRead.Position = FileStart ;
      if (leftLength < buffersize)
      {
        rNum = fsRead.Read(buffer, 0, Convert.ToInt32(leftLength));
      }
      else
        {
          rNum = fsRead.Read(buffer, 0, maxLength);
        }
        if (rNum == 0)
        {
          break;
        }
        fileStart += rNum;
        leftLength -= rNum;
        //字节转换
         string msg = System.Text.Encoding.UTF8.GetString(buffer);//

        byte[] myByte = System.Text.Encoding.UTF8.GetBytes(msg);//
         //写入文件
        using (FileStream fsWrite = new FileStream(@"d:\2.txt, FileMode.Append))//处理完成再追加
        {
          fsWrite.Write(myByte, 0, myByte.Length);
        }
    }
    fsRead.Close();
  }
}

写入文件后期,还牵扯到数据的拼接与处理

个人感觉,数据如果要按照一定格式拼接,可以通过改变每次读取的位置,来处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • c#读写excel文件使用示例

    因为支持csv,所以就一块写上了Workbook,Worksheet using Aspose.Cells(第三方) 把Excel读取到属性对象列表,需要传入对象类型和文件路径.例:List<PropSetCurrency> currencyList = this.GetObjectList<PropSetCurrency>(filePath);注:Excel的表头需要和对象名对应(可无序),且第一列不能为空 把属性对象列表保存到Excel,需要传入对象列表和保存的文件完整路径.例

  • C#实现文本文件读写方法汇总

    方法一: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace txt

  • c#读写ini配置文件示例

    其他人写的都是调用非托管kernel32.dll.我也用过 但是感觉兼容性有点不好 有时候会出现编码错误,毕竟一个是以前的系统一个是现在的系统.咱来写一个纯C#的ini格式配置文件读取,其实就是文本文件读写啦.但是我们要做的绝不仅仅是这样 是为了访问操作的方便 更是为了以后的使用. 都知道ini格式的配置文件里各个配置项 其实就是一行一行的文本 key跟value 用等号隔开.像这样:grade=5 .各个配置项又进行分组 同类型的放到一起 称之为section 以中括号([])区分.像这样:[

  • C#中读写INI文件的方法例子

    通常C#使用基于XML的配置文件,不过如果有需要的话,比如要兼顾较老的系统,可能还是要用到INI文件.但C#本身并不具备读写INI文件的API,只有通过调用非托管代码的方式,即系统自身的API才能达到所需的目的. 对应读写的方法分别为GetPrivateProfileString和WritePrivateProfileString. GetPrivateProfileString中的各参数:lpAppName -- section的名称lpKeyName -- key的名称lpDefault -

  • C#中XmlTextWriter读写xml文件详细介绍

    XmlTextWriter类允许你将XML写到一个文件中去.这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML.为了使用这个类,你必须首先创建一个新的XmlTextWriter对象,然后你可以将XML片断加入到这个对象中.这个类中包含了不少的方法用于将各种类型的XML元素添加到XML文件中,下表给出了这些方法的名字和描述情况: 方法 描述 WriteStartDocument 书写版本为"1.0"的 XML 声明 WriteEndDocument 关闭任何打开的元

  • C#读写文件的方法汇总

    1.使用FileStream读写文件 文件头: 复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.IO; 读文件核心代码: 复制代码 代码如下: byte[] byData = new byte[100];char[] charData = new char[1000];try{FileStream sFile = new FileStream("文件路径",F

  • C#简单读写txt文件的方法

    本文实例讲述了C#简单读写txt文件的方法.分享给大家供大家参考,具体如下: //write txt StringBuilder builder = new StringBuilder(); FileStream fs = new FileStream(saveFileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.Default); for (int i = 0; i < ds.Tables[0].

  • FtpHelper实现ftp服务器文件读写操作(C#)

    最近做了一个项目,需要读取ftp服务器上的文件,于是参考了网上提供的一些帮组方法,使用过程中,出现一些小细节问题,于是本人做了一些修改,拿来分享一下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Threading; using System.Configuration; na

  • C#读写txt文件的2种方法

    本文实例为大家分享了C#读取与写入txt文本文档数据的具体代码,供大家参考,具体内容如下 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. byte[] byData = new byte[100]; char[] charData = new char[1000]; public void Read() { try { FileStream file = new FileSt

  • C# 向二进制文件进行读写的操作方法

    完整代码如下: 引入命名空间: 复制代码 代码如下: using System.IO; 完整代码: 复制代码 代码如下: namespace BinaryStreamApp  {      class Program      {          static void Main(string[] args)          {              //为文件打开一个二进制写入器              FileStream fs;              fs = new Fil

随机推荐