How to modify files in go language

藏色散人
Release: 2023-01-11 09:23:29
Original
5680 people have browsed it

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

<meta name="testkey" content="hello world" />
Copy after login

Change hello world to the required characters

Import package

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

Read and write files

Read files

f, err := os.Open("index.html")
    if err != nil {
        return err
    }
    buf := bufio.NewReader(f)
    var rep = []string{"<meta name=\"testkey\" content=\"", arg1, "\" /> "}
    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"
        }
    }
Copy after login

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()
Copy after login

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)
    }
}
Copy after login

Compile

Compile native run

go build
Copy after login

Cross compile linux run

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!