首頁  >  文章  >  後端開發  >  如何使用 Go 中的 Scanner 從特定行號讀取檔案?

如何使用 Go 中的 Scanner 從特定行號讀取檔案?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-06 15:03:03774瀏覽

How to Read a File from a Specific Line Number Using Scanner in Go?

使用 Scanner 從特定行號讀取檔案

在 Go 中,bufio.Scanner 套件提供了一種便捷的方式逐行讀取檔案。但是,預設情況下,Scanner 不提供跳過或讀取特定行號的方法。為此,我們需要修改 Scanner 的預設行為。

具有自訂令牌分割器功能的擴充解決方案

我們可以透過建立自訂分割函數來擴充 Scanner,該函數決定行邊界和保持檔案位置。讓我們定義一個split 函數,該函數以位元組為單位返回到下一個換行符,並將該行作為標記:

接下來,我們可以使用Scanner.Split 方法來設定自定義分割器函數:

處理行位置

使用自訂分割功能,我們可以在讀取行的同時保持檔案位置。這是現有程式碼的修改版本:

現在,程式碼讀取行,跳過已處理的行(基於進度變數),並維護目前行號。透過調整進度值,可以控制起始行號。

以上是如何使用 Go 中的 Scanner 從特定行號讀取檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn