国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#分頁讀取GB文本文件實例

2019-10-29 21:45:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了c#分頁讀取GB文本文件的方法,對于C#實現對大數據量的讀取非常具有實用價值,需要的朋友可以參考下
 

本文實例講述了c#分頁讀取GB文本文件的方法。分享給大家供大家參考。具體如下:

一、應用場景:

① .我在做BI開發測試的時候,有可能面對source文件數GB的情況,如果使用一般的文本編輯器,則會卡死,或要等很久才能顯示出來。
② .有時候,我們使用ascii(01)或ascii(02)作為行或列的分隔符,這樣的臨時文件用于導數據到DB,如果文件導入過程中有錯誤,需要查看文件 的時候,普通的編輯器不支持換行,則會很恐怖。

為解決這兩個需求,我使用c#完成了一個簡單的winform的應用程序。

功能列表:

1.根據配置的行數,寫測試文件,指定行終止符,列分隔符暫時沒有使用上。
2.根據指定的行終止符,和pagesize,分頁讀取文件內容,而且可以在text和byte間轉換。

二、實現代碼:

主要的代碼如下,使用了一個迭代器:

 

復制代碼代碼如下:
private IEnumerator<string> ReadLines(string filename)
{
/*
string line;
using (TextReader reader = File.OpenText(filename))
{
while ((line = reader.ReadLine()) != null)
yield return line;
}
*/
StringBuilder sb = new StringBuilder();
using (FileStream fs = File.OpenRead(filename))
{
int b = 0;
while ((b=fs.ReadByte())!=-1)
{
//textbox3 store the row terminator
if (b.ToString() == textBox3.Text.Trim())
{
yield return sb.ToString();
sb.Clear();
}
else
sb.Append(UnicodeEncoding.ASCII.GetString(new byte[] { byte.Parse(b.ToString()) }));
}
}
}

 

示例截圖如下所示:

c#分頁讀取GB文本文件實例

我測試了一次,生成了1個億的數據行,在系統中顯示占用6GB的空間,
我嘗試讀寫,無卡頓情況。
可以進一步更新:
根據列行分隔符顯示到gridview中,這樣更清晰。
可以從后往前讀文件。

希望本文所述對大家的C#程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资兴市| 揭西县| 榆中县| 海淀区| 郯城县| 昆山市| 厦门市| 汉中市| 永泰县| 三门峡市| 凤台县| 昌图县| 东兰县| 岳阳县| 蒙山县| 历史| 绵阳市| 天门市| 昆山市| 重庆市| 五家渠市| 洛阳市| 古蔺县| 贺兰县| 漳浦县| 临澧县| 谷城县| 奉新县| 鱼台县| 南江县| 应用必备| 鸡西市| 抚松县| 云南省| 大新县| 蓝田县| 柳江县| 南川市| 新泰市| 延寿县| 涟水县|