Maison > développement back-end > Golang > Plusieurs méthodes pour lire et écrire des fichiers dans Golang

Plusieurs méthodes pour lire et écrire des fichiers dans Golang

angryTom
Libérer: 2020-03-12 11:06:36
original
3419 Les gens l'ont consulté

Plusieurs méthodes pour lire et écrire des fichiers dans Golang

Plusieurs méthodes de lecture et d'écriture de fichiers en golang

Les fichiers lus sont placés dans file/test : c'est-à-dire le test sous le fichier de package de fichiers, écrivez-y plus de fichiers

Première méthode de lecture du fichier : Utilisez ioutil.ReadFile pour lire directement à partir du fichier dans []octet

Recommandations associées : Tutoriel Golang

func Read0()  (string){
    f, err := ioutil.ReadFile("file/test")
    if err != nil {
        fmt.Println("read fail", err)
    }
    return string(f)
}
Copier après la connexion

Méthode de lecture du fichier deux : Lisez d'abord du fichier dans le fichier, puis lisez du fichier dans buf, puis ajoutez buf au dernier []octet

func Read1()  (string){
    //获得一个file
    f, err := os.Open("file/test")
    if err != nil {
        fmt.Println("read fail")
        return ""
    }
    //把file读取到缓冲区中
    defer f.Close()
    var chunk []byte
    buf := make([]byte, 1024)
    for {
        //从file读取到buf中
        n, err := f.Read(buf)
        if err != nil && err != io.EOF{
            fmt.Println("read buf fail", err)
            return ""
        }
        //说明读取结束
        if n == 0 {
            break
        }
        //读取到最终的缓冲区中
        chunk = append(chunk, buf[:n]...)
    }
    return string(chunk)
    //fmt.Println(string(chunk))
}
Copier après la connexion

Troisième méthode de lecture du fichier : Lire d'abord de fichier en fichier, puis lire du fichier vers Reader, lire du Reader vers buf, et buf est enfin ajouté à []byte

//先从文件读取到file, 在从file读取到Reader中,从Reader读取到buf, buf最终追加到[]byte,这个排第三
func Read2() (string) {
    fi, err := os.Open("file/test")
    if err != nil {
        panic(err)
    }
    defer fi.Close()
    r := bufio.NewReader(fi)
    var chunks []byte
    buf := make([]byte, 1024)
    for {
        n, err := r.Read(buf)
        if err != nil && err != io.EOF {
            panic(err)
        }
        if 0 == n {
            break
        }
        //fmt.Println(string(buf))
        chunks = append(chunks, buf...)
    }
    return string(chunks)
    //fmt.Println(string(chunks))
}
Copier après la connexion

Quatrième façon de lire des fichiers : Lire dans le fichier, puis utiliser ioutil pour lire le fichier directement dans []byte

//读取到file中,再利用ioutil将file直接读取到[]byte中, 这是最优
func Read3()  (string){
    f, err := os.Open("file/test")
    if err != nil {
        fmt.Println("read file fail", err)
        return ""
    }
    defer f.Close()
    fd, err := ioutil.ReadAll(f)
    if err != nil {
        fmt.Println("read to fd fail", err)
        return ""
    }
    return string(fd)
}
Copier après la connexion

PHP chinois Il existe beaucoup de Tutoriels d'introduction à la programmation sur Internet, bienvenue pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal