Crearea și deschiderea fișierelor
Pentru a lucra cu fișiere, putem utiliza funcționalitatea pachetului os. Toate fișierele în Go sunt reprezentate de tipul os.File. Acest tip implementează mai multe interfețe, de exemplu, io.Reader și io.Writer, care permit citirea conținutului unui fișier și salvarea datelor într-un fișier.
Folosind funcția os.Create(), putem crea un fișier într-o locație specificată. Calea către fișier este transmisă ca parametru. Dacă un astfel de fișier există deja, acesta va fi suprascris:
file, err := os.Create("hello.txt")
Funcția returnează un obiect os.File pentru lucrul cu fișierul și informații despre eroarea care ar putea apărea la crearea fișierului.
Un fișier deja creat poate fi deschis folosind funcția os.Open():
file, err := os.Open("hello.txt")
Această funcție returnează, de asemenea, un obiect os.File pentru lucrul cu fișierul și informații despre eroarea care ar putea apărea la deschiderea fișierului.
De asemenea, avem la dispoziție funcția os.OpenFile(), care deschide un fișier, iar dacă fișierul nu există, îl creează. Aceasta primește trei parametri:
- calea către fișier
- modul de deschidere a fișierului (pentru citire, pentru scriere etc.)
- permisiuni pentru accesul la fișier
De exemplu:
// deschiderea fișierului pentru citire
f1, err := os.OpenFile("sometext.txt", os.O_RDONLY, 0666)
// deschiderea fișierului pentru scriere
f2, err := os.OpenFile("common.txt", os.O_WRONLY, 0666)
După ce am terminat lucrul cu fișierul, acesta trebuie închis folosind metoda Close().
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Create("hello.txt") // creăm fișierul
if err != nil{ // dacă apare o eroare
fmt.Println("Nu s-a putut crea fișierul:", err)
os.Exit(1) // ieșim din program
}
defer file.Close() // închidem fișierul
fmt.Println(file.Name()) // hello.txt
}
Folosind funcția os.Exit(), putem ieși din program. Iar metoda Name(), definită pentru tipul os.File, permite obținerea numelui fișierului.