如何有效率地讀取特定檔案行
在程式設計中經常需要從檔案讀取特定行。為了解決這個問題,開發了一個函數 ReadLine。雖然它有效地達到了預期的結果,但仍然存在一個揮之不去的問題:是否有一種更優越、更有效率的方法?
ReadLine 函數利用 bufio.Scanner 逐行遍歷檔案。到達指定的行號後,它會檢索並傳回行文字、目前行號和潛在的掃描錯誤。
<code class="go">func ReadLine(r io.Reader, lineNum int) (line string, lastLine int, err error) { sc := bufio.NewScanner(r) for sc.Scan() { lastLine++ if lastLine == lineNum { return sc.Text(), lastLine, sc.Err() } } return line, lastLine, io.EOF }</code>
但是,值得注意的是,此函數假設檔案可以裝入記憶體。對於非常大的文件,逐行處理文件而不將整個文件儲存在記憶體中的替代策略可能更合適。
以上是有沒有更有效的方法從文件中讀取特定行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!