Operasi I/O tingkat lanjut di Go meliputi:
1. Buffer I/O dengan Paket `bufio`:
- Buffered Readers: Gunakan `bufio.NewReader` untuk membuat pembaca buffered yang dapat menangani data dalam jumlah besar secara efisien.- Buffered Writers: Gunakan `bufio.NewWriter` untuk membuat penulis buffered yang dapat menangani data dalam jumlah besar secara efisien.
2. Pembaca Tee:
- TeeReader: Gunakan `io.TeeReader` untuk membagi data masukan menjadi dua aliran. Ini berguna ketika Anda perlu memproses data dengan dua cara berbeda.3. Data Perpipaan:
- Pipe: Gunakan `io.Pipe` untuk membuat pipa dalam memori sinkron yang dapat digunakan untuk menghubungkan kode yang mengharapkan `io.Reader` dengan kode yang mengharapkan `io.Writer`.4. Membaca dan Menulis File:
- Membaca dari File: Gunakan `os.Open` untuk membuka file dalam mode baca-saja, lalu gunakan `bufio.NewReader` untuk membuat pembaca.- Menulis ke File: Gunakan `os.Create` atau `os.OpenFile` untuk membuat atau membuka file dalam mode tulis lalu gunakan `bufio.NewWriter` untuk membuat penulis.
5. Menangani Konkurensi:
- Penanganan File yang Aman: Gunakan `defer` untuk memastikan bahwa pegangan file ditutup dengan benar untuk menghindari kebocoran sumber daya.6. Menggunakan `io.Copy`:
- Menyalin Data: Gunakan `io.Copy` untuk menyalin data dari satu pembaca ke penulis lain.7. Menggunakan `io.CopyN`:
- Menyalin Data dengan Batas: Gunakan `io.CopyN` untuk menyalin data dalam jumlah terbatas dari satu pembaca ke penulis lain.8. Menggunakan `io.ReadAtLeast`:
- Membaca Setidaknya dalam Jumlah Tertentu: Gunakan `io.ReadAtLeast` untuk membaca setidaknya sejumlah data tertentu dari pembaca.9. Menggunakan `io.ReadFull`:
- Membaca Jumlah Penuh: Gunakan `io.ReadFull` untuk membaca seluruh jumlah data dari pembaca.10. Menggunakan `io.WriteString`:
- Menulis String: Gunakan `io.WriteString` untuk menulis string ke penulis.11. Menggunakan `io.WriteString` dengan Buffer:
- Menulis String dengan Buffer: Gunakan `io.WriteString` dengan buffer untuk menulis string ke penulis secara efisien.12. Menggunakan `io.MultiReader`:
- Membaca dari Berbagai Sumber: Gunakan `io.MultiReader` untuk membaca dari berbagai sumber.13. Menggunakan `io.MultiWriter`:
- Menulis ke Beberapa Tujuan: Gunakan `io.MultiWriter` untuk menulis ke beberapa tujuan.14. Menggunakan `io.PipeLine`:
- Membuat Pipeline: Gunakan `io.PipeLine` untuk membuat pipeline pembaca dan penulis.15. Menggunakan `io.ReadFull` dengan Buffer:
- Membaca Jumlah Penuh dengan Buffer: Gunakan `io.ReadFull` dengan buffer untuk membaca seluruh jumlah data dari pembaca secara efisien.Operasi I/O tingkat lanjut di Go ini memberikan lebih banyak fleksibilitas dan kontrol atas cara data dibaca dan ditulis, membuatnya lebih mudah untuk menangani tugas-tugas I/O yang kompleks secara efisien.
Kutipan:[1] https://www.developer.com/linguals/input-output-golang/
[2] https://www.educative.io/courses/advanced-techniques-in-go-programming/file-i-o
[3] https://www.codingexplorations.com/blog/mastering-io-readers-writers-go
[4] https://dev.to/romulogatto/file-io-in-go-488d
[5] https://hyperskill.org/learn/step/14527