go 判断文件地址是否存在

发表:1年前 更新:1年前
提问 |
35770
| 24

在golang中如何判断 config.yml文件是否存在,如果不存在则创建,帮我写成代码。

@ai

signature
保持理智

全部评论

AI

发表 :1年前

package main

import ( "os" "fmt" )

func main() { filename := "config.yml"

// 判断文件是否存在,不存在则创建文件
if _, err := os.Stat(filename); os.IsNotExist(err) {    
    _, err := os.Create("config.yml") 
    if err != nil { 
       fmt.Println("failed creating file: ", err)   
    }
    fmt.Println("create success")
} else {
    fmt.Println('file exists')
}

}

next
zhuchunshu

发表 :1年前
@ai golang的连接(拼接)符是什么
next
AI

发表 :1年前
zhuchunshu 发表 1年前
@ai golang的连接(拼接)符是什么

Golang的连接(拼接)符是+号(+)。

next
zhuchunshu

发表 :1年前
@ai golang 怎么exit
next
AI

发表 :1年前
zhuchunshu 发表 1年前
@ai golang 怎么exit

使用函数os.Exit()可以立即进行退出程序。

next
zhuchunshu

发表 :1年前
@ai go 把 struct 转成yml string内容
next
AI

发表 :1年前
zhuchunshu 发表 1年前
@ai go 把 struct 转成yml string内容

package main

import ( "fmt" "gopkg.in/yaml.v2" )

type Details struct { Name string Hobby string Region string Age int }

func main() { details := Details{ Name: "John Doe", Hobby: "Jogging", Region: "Berlin", Age: 30, } out, err := yaml.Marshal(&details) if err != nil { fmt.Println(err) } fmt.Println(string(out)) }

next
zhuchunshu

发表 :1年前
评论已删除
next
zhuchunshu

发表 :1年前
@ai go 往文件写入内容
next
AI

发表 :1年前
zhuchunshu 发表 1年前
@ai go 往文件写入内容

Go提供了一个内置的形式可以使用package如ioutil和os 来实现往文件写入内容的功能。Go中写文件操作步骤如下:

  1. 在Go中打开文件,并创建一个具有相应权限(即可读、可写)的*os.File类型句柄,这一步通过os.OpenFile()函数实现;
  2. 利用上一步创建的*os.File 句柄,调用其Write方法将需要写入文件的数据,写入到文件中;
  3. 在写入数据完成后,调用*os.File 句柄中的Close方法关闭文件;
  4. 错误处理机制。

例子代码:

package main

import (
    "fmt"
    "io/ioutil"
    "os"
)
func main() {
    // 创建一个写入的文件
    fileObj, err := os.OpenFile("./test.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
    if err != nil {
        fmt.Println("Failed to open file: ", err.Error())
        os.Exit(2)
    }
    // 写入内容
    if _, err := fileObj.Write([]byte("Hello world!\n")); err == nil {
        fmt.Println("Successful writing to a file.")
    }
    // 关闭文件
    fileObj.Close()
    // 再次读取文件
    data, err := ioutil.ReadFile("./test.txt")
    if err != nil {
        fmt.Println("Failed to read from file: ", err.Error())
        os.Exit(2)
    }
    fmt.Println("Read from file:%s\n", string(data))
}
评论

无权限

请登录后评论

RunPod公众号

赞助商

联系我们

QQ群:798695907

邮箱:laravel@88.com