Skip to content

Files

Latest commit

1e7f087 · Jun 16, 2014

History

History
159 lines (103 loc) · 3.37 KB

File metadata and controls

159 lines (103 loc) · 3.37 KB

7.5 Archivos

El archivo se debe-tener como un objeto unico en cada dispositivo informático y tambien en aplicaciones web se tiene mucho uso. En esta sección, vamos a aprender a manejar archivos en Go.

DirectoriosDirectories

La mayor parte de las funciones de las operaciones de archivos estan en el package os, he aquí algunas funciones sobre directorios:

  • func Mkdir(name string, perm FileMode) error

    Crear directorio con name, perm, 0777.

  • func MkdirAll(path string, perm FileMode) error

    Crear varios directorios de acuerdo al path, como astaxie/test1/test2.

  • func Remove(name string) error

    Remueve el directorio name, devuelve error si no es directorio o no está vacío.

  • func RemoveAll(path string) error

    Eliminar varios directorios de acuerdo path , no se borrará si camino es un camino único.

Codigo de ejemplo:

package main

import (
	"fmt"
	"os"
)

func main() {
	os.Mkdir("astaxie", 0777)
	os.MkdirAll("astaxie/test1/test2", 0777)
	err := os.Remove("astaxie")
	if err != nil {
		fmt.Println(err)
	}
	os.RemoveAll("astaxie")
}

Archivos

Crear y abrir archivos

Dos funciones para crear los archivos:

  • func Create(name string) (file *File, err Error)

    Crear un archivo con el name y devolver un objeto de archivo con el permiso 0666 de lectura y escritura

  • func NewFile(fd uintptr, name string) *File

    Crear un archivo y devolver un objeto de archivo.

Dos funciones para abrir archivos:

  • func Open(name string) (file *File, err Error)

    Open file with name con el permiso de sólo lectura, y llama a OpenFile con guion bajo.

  • func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

    Open file with name, flag es el modo abierto como read-only, read-write, perm es el permiso.

Escribir archivos

Funciones para la escritura de archivos:

  • func (file *File) Write(b []byte) (n int, err Error)

    Escribe byte tipo de contenido en un archivo.

  • func (file *File) WriteAt(b []byte, off int64) (n int, err Error)

    Escribe byte tipo de contenido a determinada posición de archivo.

  • func (file *File) WriteString(s string) (ret int, err Error)

    Escribe cadena en el archivo.

Code sample:

package main

import (
	"fmt"
	"os"
)

func main() {
	userFile := "astaxie.txt"
	fout, err := os.Create(userFile)		
	if err != nil {
		fmt.Println(userFile, err)
		return
	}
	defer fout.Close()
	for i := 0; i < 10; i++ {
		fout.WriteString("Just a test!\r\n")
		fout.Write([]byte("Just a test!\r\n"))
	}
}

Leer los archivos

Funciones para leer los archivos

  • func (file *File) Read(b []byte) (n int, err Error)

    Lee datos de b.

  • func (file *File) ReadAt(b []byte, off int64) (n int, err Error)

    Lee datos en posicion off to b.

Code sample:

package main

import (
	"fmt"
	"os"
)

func main() {
	userFile := "asatxie.txt"
	fl, err := os.Open(userFile)		
	if err != nil {
		fmt.Println(userFile, err)
		return
	}
	defer fl.Close()
	buf := make([]byte, 1024)
	for {
		n, _ := fl.Read(buf)
		if 0 == n {
			break
		}
		os.Stdout.Write(buf[:n])
	}
}

Eliminar archivos

Go utiliza la misma función para eliminar archivos y directorios:

  • func Remove(name string) Error

    Eliminar archivo o directorio con name.( nametermina con / directorio )

Links