Home  >  Article  >  Backend Development  >  How to modify files in go language

How to modify files in go language

藏色散人
藏色散人Original
2021-01-27 11:43:395590browse

How to modify files in Go language: first import the corresponding package; then open and read the file through the "f, err := os.Open("index.html")..." statement; finally pass The "bufio.NewWriter(fw)..." statement can rewrite the file.

How to modify files in go language

The operating environment of this article: Windows7 system, Go1.11.2, Dell G3 computer.

Recommendation: "golang tutorial"

Go language implementation to change file content

Idea

Read the file, append or replace the content that needs to be changed, and then write it to the file.

Implement changing the content in the file

Now there is an html file containing the following content

Change hello world to the required characters

Import package

import (
    "bufio"
    "fmt"
    "io"
    "log"
    "net/http"
    "os"
    "strings"
)

Read and write files

Read files

f, err := os.Open("index.html")
    if err != nil {
        return err
    }
    buf := bufio.NewReader(f)
    var rep = []string{" "}
    var result = ""
    for {
        a, _, c := buf.ReadLine()
        if c == io.EOF {
            break
        }
        if strings.Contains(string(a), "baidu-site-verification") {
            result += strings.Join(rep, "") + "\n"
        } else {
            result += string(a) + "\n"
        }
    }

Write files (overwrite)

fw, err:= os.OpenFile ("index.html", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)//os.O_TRUNC clear the file and rewrite it, otherwise the original file content may remain

    w := bufio.NewWriter(fw)
    w.WriteString(result)
    if err != nil {
        panic(err)
    }
    w.Flush()

Implement a simple http Interface

func replace(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    var arg1 string = r.FormValue("p1")//参数key
    ReadLine("index.html", arg1)
    fmt.Fprintf(w, "success") //返回结果
}
func main() {
    http.HandleFunc("/replace", replace)     //设置访问的路由
    err := http.ListenAndServe(":9090", nil) //设置监听的端口
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

Compile

Compile native run

go build

Cross compile linux run

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

The above is the detailed content of How to modify files in go language. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn