Go Dosya İşlemleri

·

2 min read

Go, dosya işlemleri için oldukça kullanışlı bir dil olarak bilinir. Go'nun standart kütüphanesinde bulunan "os" paketi, dosya işlemleri için gerekli olan bir dizi fonksiyonu sağlar.

Dosya okuma işlemleri için "os" paketindeki "Open" fonksiyonu kullanılır. Bu fonksiyon, istenen dosyanın açılmasını ve bir "File" nesnesi döndürür. Bu nesne üzerinden dosyanın içeriği okunabilir. Örneğin, aşağıdaki kod ile bir dosyanın içeriğini okuyabiliriz:

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("dosya.txt")
    if err != nil {
        fmt.Println("Dosya açılamadı:", err)
        return
    }
    defer file.Close()

    data := make([]byte, 1024)
    count, err := file.Read(data)
    if err != nil {
        fmt.Println("Dosya okunamadı:", err)
        return
    }

    fmt.Println("Okunan veri:", string(data[:count]))
}

Yukarıdaki kodda, "os.Open" fonksiyonu kullanılarak "dosya.txt" adlı bir dosya açılır. "defer" anahtar kelimesi kullanılarak dosya, fonksiyonun sonunda otomatik olarak kapatılır.

Daha sonra "file.Read" fonksiyonu kullanılarak dosyadan veri okunur. Okunan veri, bir byte dizisi olan "data" değişkenine atanır. "count" değişkeni ise okunan bayt sayısını tutar.

Son olarak, okunan veri ekrana yazdırılır. Eğer dosya okuma sırasında bir hata oluşursa, hata mesajı ekrana yazdırılır.

Go'da dosya yazma işlemi yapmak için ise "os" paketindeki "Create" veya "OpenFile" fonksiyonları kullanılabilir. İki fonksiyon da yeni bir dosya oluşturur veya var olan bir dosyayı açar.

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("yeni_dosya.txt")
    if err != nil {
        fmt.Println("Dosya oluşturulamadı:", err)
        return
    }
    defer file.Close()

    veri := []byte("Bu bir test dosyasıdır.")
    _, err = file.Write(veri)
    if err != nil {
        fmt.Println("Dosya yazılamadı:", err)
        return
    }

    fmt.Println("Dosya başarıyla yazıldı.")
}

Yukarıdaki kodda "os.Create" fonksiyonu kullanılarak "yeni_dosya.txt" adlı bir dosya oluşturulur. Eğer dosya zaten varsa, üzerine yazılır. "defer" anahtar kelimesi ile dosya, fonksiyonun sonunda otomatik olarak kapatılır.

Daha sonra "file.Write" fonksiyonu kullanılarak "veri" değişkenindeki byte dizisi dosyaya yazılır. "_" işareti, "file.Write" fonksiyonunun dönüş değerini kullanmadığımızı belirtir. Eğer dosya yazma sırasında bir hata oluşursa, hata mesajı ekrana yazdırılır.

İki örnekte de "os" paketinin fonksiyonları kullanılarak dosya okuma ve yazma işlemleri gerçekleştirilmiştir. Bu fonksiyonlar, Go'nun sunduğu özelliklerden sadece birkaç örnektir. Daha fazla işlem yapmak isterseniz, Go'nun "os" paketi belgelerine başvurabilirsiniz.