在 Go 中,bufio.Scanner 套件提供了一種便捷的方式逐行讀取檔案。但是,預設情況下,Scanner 不提供跳過或讀取特定行號的方法。為此,我們需要修改 Scanner 的預設行為。
我們可以透過建立自訂分割函數來擴充 Scanner,該函數決定行邊界和保持檔案位置。讓我們定義一個split 函數,該函數以位元組為單位返回到下一個換行符,並將該行作為標記:
接下來,我們可以使用Scanner.Split 方法來設定自定義分割器函數:
使用自訂分割功能,我們可以在讀取行的同時保持檔案位置。這是現有程式碼的修改版本:
現在,程式碼讀取行,跳過已處理的行(基於進度變數),並維護目前行號。透過調整進度值,可以控制起始行號。
以上是如何使用 Go 中的 Scanner 從特定行號讀取檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!