用C#中的流讀取大文本文件我有一個很好的任務,就是如何處理加載到應用程序腳本編輯器中的大型文件(如下所示)VBA為我們的內部產(chǎn)品快速宏)。大多數(shù)文件大約300-400 KB,這是很好的加載。但是,當它們超過100 MB時,進程將遇到困難(正如您所期望的)。所發(fā)生的情況是將文件讀取并插入到RichTextBox中,然后導航-不要太擔心這個部分。編寫初始代碼的開發(fā)人員只需使用StreamReader并執(zhí)行[Reader].ReadToEnd()這可能需要很長時間才能完成。我的任務是分解這段代碼,將其以塊的形式讀取到緩沖區(qū)中,并顯示一個帶有取消選項的進度條。一些假設:大多數(shù)文件將是30-40 MB。文件的內容是文本(不是二進制),有些是Unix格式,有些是DOS。一旦檢索到內容,我們就知道使用了什么終止符。沒有人擔心,一旦它加載的時間,它呈現(xiàn)在豐富文本框。這只是文本的初始負載。下面是問題:我是否可以簡單地使用StreamReader,然后檢查Length屬性(所以ProgressMax),然后為設置的緩沖區(qū)大小發(fā)出一個Read,然后在WITH循環(huán)中迭代同時在后臺工作人員內部,所以它不會阻塞主UI線程?完成后,將字符串生成器返回到主線程。內容將轉到StringBuilder。如果長度可用,可以用流的大小初始化StringBuilder嗎?這些(在你的專業(yè)意見中)是好主意嗎?過去,我在從流中讀取內容時遇到了一些問題,因為它總是會錯過最后幾個字節(jié)或什么的,但如果是這樣的話,我還會問另一個問題。
3 回答

慕妹3146593
TA貢獻1820條經(jīng)驗 獲得超9個贊
reader.ReadToEnd()
- 3 回答
- 0 關注
- 1661 瀏覽
添加回答
舉報
0/150
提交
取消