[英]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.