Membaca dan menulis teks dalam sebuah file sangat umum digunakan dalam berbagai program dan aplikasi, entah itu membaca file konfigurasi atau menyimpan data yang di inputkan pada program tersebut.
Menulis Teks Ke Dalam File
Untuk menulis string teks ke dalam file kita dapat menggunakan fungsi WriteFile()
pada paket io/ioutil
. Selain itu Agar teks yang kita tulis dalam file dapat dibaca seperti halnya file teks pada umumnya, maka kita perlu mengonversi teks ke dalam karakter byte.
var teks string = "Teks string"
var namafile string = "teks.txt"
//Menulis teks ke dalam file
err := ioutil.WriteFile(namafile, []byte(teks), 0644)
if err != nil {
log.Print(err)
}
Variabel namafile
menentukan nama file dimana teks yang akan kita tulis di simpan, Fungsi WriteFile
akan secara otomatis membuat file dan menuliskan teks jika file dengan nama teks.txt
tidak ada sebelumnya.
Pada fungsi WriteFile
kita juga menambahkan argument []byte(teks)
dimana teks string kita di ubah ke type array byte untuk bisa digunakan oleh fungsi WriteFile
, untuk lebih sederhananya kita bisa menuliskan karakter stringnya langsung tanpa menggunakan variable teks
seperti []byte("Teks string")
.
Terakhir dalam argumen fungsi WriteFile
adalah permision untuk menulis pada file 0644
.
Membaca Teks dalam file
Untuk membaca teks dalam sebuah file kita hanya membutuhkan nama file dimana teks yang akan kita baca disimpan. Kemudian mengkonversi array byte ke bentuk string seperti berikut.
var namafile string = "teks.txt"
//membaca teks dari file
teksBaca, err := ioutil.ReadFile(namafile)
if err != nil {
log.Print(err)
}
// Print output teks yang dibaca dari file
teksString:= string(teksBaca)
fmt.Print(teksString)
Kode Lengkap
Berikut contoh program sederhana untuk menulis dan membaca teks pada sebuah file.
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
teks := "Halo Dunia!"
namafile := "teks.txt"
//Menulis teks ke dalam file
err := ioutil.WriteFile(namafile, []byte(teks), 0644)
if err != nil {
log.Print(err)
}
//membaca teks dari file
teksBaca, err := ioutil.ReadFile(namafile)
if err != nil {
log.Print(err)
}
// Print output teks yang dibaca dari file
fmt.Println(string(teksBaca))
}
Hasil Output
Halo Dunia!