Rumah >pembangunan bahagian belakang >Golang >PERGI menulis dan membaca fail dengan kepingan

PERGI menulis dan membaca fail dengan kepingan

DDD
DDDasal
2024-11-10 09:16:02980semak imbas

GO writing and reading files with slices

1. Bagaimana mungkin kita harus bekerja dengan fail menggunakan kepingan

Menyelesaikan tugas pengaturcaraan saya baru-baru ini, saya mendapati bahawa **tiada kaedah yang dibenarkan untuk mendapatkan kepingan baris dan menyimpan baris yang diproses pada cakera. Sudah tentu, saya boleh membelah rentetan menjadi hirisan rentetan dan menggunakan hirisan itu, tetapi saya ingin mendapatkan beberapa pakej sekali dan menggunakannya dengan mudah, pada bila-bila masa saya memerlukannya.

Nah, saya ingin mempunyai kaedah berikut:

  1. ReadAllLines yang membaca kandungan fail dan mengembalikan tuple []rentetan,ralat
  2. WriteAllLines untuk menulis kepingan rentetan
  3. AppendAllLines untuk menambah kepingan rentetan pada akhir fail sedia ada.

2.1 Pakej baharu yang memenuhi semua keperluan

Jadi selepas saya memutuskan kaedah apa yang sepatutnya ada pada pakej tersebut, saya menulis pakej gfu (gfu ialah singkatan untuk Go File Utils) dan ingin berkongsinya, lihat repo github:

2.1 Kaedah ReadAllText

Kaedah ini melakukan perkara berikut:
1 Mengembalikan tuple ([]rentetan, ralat) hasil dengan penghujung baris auto-kesan (CR, LF atau CRLF);
2 Mengalih keluar simbol penamat baris daripada item hirisan
3 Mengalih keluar baris kosong jika argumen omitEmpty ditetapkan kepada benar

Contoh:

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

2.2 Kaedah WriteAllText

Kaedah ini melakukan perkara berikut:

  1. Memasukkan simbol pemisah baris yang ditakrifkan dalam hujah ke-3 fungsi WriteAllLines
  2. Memangkas fail jika wujud, jika tidak, fail akan dibuat

Contoh:

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

2.3 Kaedah AppendAllText

WriteAllLines menimpa kandungan fail, tetapi apakah yang perlu kita lakukan jika kita perlu menambah beberapa bahagian baris pada fail sedia ada? Kita harus menggunakan fungsi AppendAllLines yang, dengan tandatangan, adalah sama dengan 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")

3. Kesimpulan

Semua fungsi ini agak mudah dan digabungkan dalam pakej kecil, juga ujian telah ditulis pada semua fungsi ini, jadi kami boleh menganggapnya sebagai boleh dipercayai. Dan saya pergi lebih jauh dalam perjalanan pembangunan perisian saya. jangan lupa beri kami bintang jika anda rasa pakej ini membantu.

Atas ialah kandungan terperinci PERGI menulis dan membaca fail dengan kepingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn