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.

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!