簡體   English   中英

從文件中讀取多個文本行作為流

[英]Reading multiple text lines from a file as stream

我需要使用以下模式在powershell中讀取和處理非常大的文本文件。 但是,逐行閱讀對我來說似乎效率很低。

$reader = [System.IO.File]::OpenText($file)
while(!$reader.EndOfStream){
 $line = $reader.ReadLine()
 ###Do something
}

因此,不是逐行讀取,而是可以從某種流對象一次讀取多行嗎?

為什么不為此使用內置命令:

Get-Content $file -ReadCount 1024 | Foreach {$_} | Where {$_ -match 'pattern'}

一次讀取1024行。 通過Foreach命令運行它們,以將1024行的數組展平為單行進行處理-在這種情況下,將基於正則表達式模式進行過濾。

您已經在使用流讀取器從“某種流對象”中進行讀取。 這取決於您想做什么。 如果要逐行處理事物(例如,如果要查看某行是否包含某個單詞),則您所做的工作幾乎是正確的方法。 您可以使用StreamReader.Read方法一次讀取更多數據: http : //msdn.microsoft.com/en-us/library/9kstw824( v=vs.110) .aspx您也可以一次讀取所有數據,使用ReadAll。 一切都取決於您要解析事物的級別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM