>  기사  >  백엔드 개발  >  Go 언어로 파일을 수정하는 방법

Go 언어로 파일을 수정하는 방법

藏色散人
藏色散人원래의
2021-01-27 11:43:395731검색

Go 언어로 파일을 수정하는 방법: 먼저 해당 패키지를 가져온 다음 "f, err := os.Open("index.html")..." 문을 통해 파일을 열고 읽습니다. 마지막으로 "bufio"를 사용합니다. .NewWriter (fw)..." 문을 파일에 다시 쓸 수 있습니다.

Go 언어로 파일을 수정하는 방법

이 문서의 운영 환경: Windows 7 시스템, Go1.11.2, Dell G3 컴퓨터.

추천: "golang tutorial"

Go 언어로 파일 내용 변경 구현

Idea

파일을 읽고, 변경해야 할 내용을 추가하거나 교체한 후 작성하세요. 파일에.

파일 내용 변경 실현

이제 다음 내용을 포함하는 html 파일이 있습니다

<meta name="testkey" content="hello world" />

hello world를 필수 문자로 변경하세요

패키지 가져오기

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

파일 읽기 및 쓰기

파일 읽기

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"
        }
    }

파일 쓰기(덮어쓰기)

fw, err := os.OpenFile("index.html", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)//os.O_TRUNC는 파일을 지우고 다시 씁니다. 그렇지 않으면 원본 파일 콘텐츠가 남아 있을 수 있습니다.

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

간단한 http 인터페이스 구현

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 기본 실행

go build

cross compile linux run

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

위 내용은 Go 언어로 파일을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.