C#利用緩存分塊讀寫大文件
C#利用緩存分塊讀寫大文件,供大家參考,具體內(nèi)容如下
在日常生活中,可能會遇到大文件的讀取,不論是什么格式,按照儲存文件的格式讀取大文件,就會在Buffer中看到相關(guān)的文件頭合內(nèi)容, 以一次.txt文件存取為例。
using System.IO;
首先創(chuàng)建demo文件,此處文件大小沒關(guān)系,只是演示
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); } }
讀取創(chuàng)建的文件
private void Readtxt() { using (FileStream fsRead = new FileStream(@"d:\2.txt,FileMode.Open")) { //剩余文件內(nèi)容長度 long leftLength = fsRead.Length; //buffersize int buffersize = 1024; //創(chuàng)建緩存數(shù)組 byte[] buffer = new byte[buffersize]; int rNum = 0; int FileStart = 0; while(leftLength > 0) { //設(shè)置文件流的讀取位置 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; //字節(jié)轉(zhuǎn)換 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(); } }
寫入文件后期,還牽扯到數(shù)據(jù)的拼接與處理
個人感覺,數(shù)據(jù)如果要按照一定格式拼接,可以通過改變每次讀取的位置,來處理。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持我們。
您可能感興趣的文章
- 01-10C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果
- 01-10winform簡單緩存類實例
- 01-10C#圖片處理3種高級應(yīng)用
- 01-10C#異步下載文件
- 01-10C# Console利用mspaint打開圖像并保存的方法
- 01-10C#利用delegate實現(xiàn)Javascript的each方法
- 01-10C#利用GDI繪制常見圖形和文字
- 01-10利用C#實現(xiàn)網(wǎng)絡(luò)爬蟲
- 01-10C# 利用ICSharpCode.SharpZipLib實現(xiàn)在線壓縮和解壓縮
- 01-10C#利用時間和隨即字符串創(chuàng)建唯一的訂單編號


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改