美文网首页
Go语言实现更改文件内容

Go语言实现更改文件内容

作者: droid_zf | 来源:发表于2018-07-09 17:46 被阅读80次

思路

读取文件,将需要更改的内容追加或替换,再写入文件。

实现更改文件中内容

现在有一个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)
    }
}

编译

编译本机运行

go build

交叉编译linux运行

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

相关文章

  • Go语言实现更改文件内容

    思路 读取文件,将需要更改的内容追加或替换,再写入文件。 实现更改文件中内容 现在有一个html文件,其中包含如下...

  • Go语言:文件追加内容

    代码实例 相关文章 Go语言:获取某个目录下的所有文件 Go语言:读取文本文件并输出内容 Go语言:将字符串保存成...

  • Go语言:将字符串保存成文件

    代码实例 相关文章 Go语言:获取某个目录下的所有文件 Go语言:读取文本文件并输出内容 Go语言:将字符串保存成...

  • 2018-05-24raft实现代码

    1.go语言实现raft分发原理main.go 文件代码如下

  • 源码文件的分类和含义(一)

    Go源码文件 名称以.go为后缀,内容以Go语言代码组织的文件多个GO源码文件是需要用代码包组织起来的 源码文件分...

  • Go语言实现TCP通信

    章节 go 优势 go 实现 TCP 通信 1 go 语言优势 1.1 go 语言优势 2 go 实现TCP通信 ...

  • 32. Readers读取数据流

    go语言的 io 包指定了 io.Reader 接口。go语言标准库包含了这个接口的许多实现,包括文件、网络连接、...

  • 002-helloword

    go语言文件以 .go结束符结尾 go语言运行

  • 2018-05-30 (2) go 工程管理 linux下

    问题: 一个go工程 需要创建多个文件时,go语言采用命令行,对文件实现了管理。 1、安装 tree apt-ge...

  • go fmt与gofmt命令

    go fmt命令会按照Go语言代码规范格式化指定代码包中的所有Go语言源码文件的代码,所有Go语言源码文件即包括命...

网友评论

      本文标题:Go语言实现更改文件内容

      本文链接:https://www.haomeiwen.com/subject/abytpftx.html