首頁 >後端開發 >Golang >GO 使用切片寫入和讀取文件

GO 使用切片寫入和讀取文件

DDD
DDD原創
2024-11-10 09:16:02947瀏覽

GO writing and reading files with slices

1. 我們應該如何使用切片來處理文件

最近解決我的程式設計任務時,我發現沒有任何方法可以取得行切片並將處理後的行保存在磁碟上。當然,我可以將字串拆分為字串切片並使用該切片,但我希望一次性擁有一些包,並在需要時輕鬆使用它。

嗯,我想要以下方法:

  1. ReadAllLines 讀取檔案內容並傳回元組 []string,error
  2. WriteAllLines 寫入字串片段
  3. AppendAllLines 將字串片段新增至現有檔案的末端。

2.1 滿足所有要求的新包

因此,在我決定此類套件應該具有哪些方法之後,我編寫了 gfu(gfu 代表 Go File Utils)套件並希望與大家分享,請參閱 github 儲存庫:

2.1 ReadAllText方法

此方法執行以下操作:
1 傳回結果的元組([]string, error),自動偵測行結尾(CR、LF 或 CRLF);
2 從切片項目中刪除行結束符號
3 如果 omitEmpty 參數設定為 true,則刪除空白行

範例:

lines, err := gfu.ReadAllLines("myFile.txt", true)

2.2 WriteAllText方法

此方法執行以下操作:

  1. 插入 WriteAllLines 函數的第三個參數中定義的行分隔符號
  2. 如果文件存在則截斷文件,如果不存在則建立一個文件

範例:

lines := []string{
"{",
"    \"id\": 1,",
"    \"name\": \"Michael Ushakov\"",
"}",
}
file := "write_all_lines_test.txt"
err := gfu.WriteAllLines(file, lines, "\n")

2.3 AppendAllText方法

WriteAllLines 會覆蓋檔案內容,但是如果我們需要在現有檔案中新增一些行部分該怎麼辦?我們應該使用 AppendAllLines 函數,其簽章與 WriteAllLines 相同:

lines := []string{
"{",
"    \"id\": 1,",
"    \"name\": \"Michael Ushakov\"",
"}",
}
file := "append_all_lines_test.txt"
err := gfu.WriteAllLines(file, lines, "\n")

additionalLines := []string{
"{",
"    \"id\": 2,",
"    \"name\": \"Alex Petrov\"",
"}",
}

err := gfu.AppendAllLines(file, lines, "\n")

三、結論

所有這些功能都非常方便,並且組合在一個小包中,並且對所有這些功能都進行了測試,因此我們可以認為它們是可靠的。我在我的軟體開發之旅上更進一步。如果您覺得這個包有幫助,請不要忘記給我們一顆星。

以上是GO 使用切片寫入和讀取文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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