gpt4 book ai didi

高语 : Reading a File Basics

转载 作者:IT王子 更新时间:2023-10-29 01:50:18 27 4
gpt4 key购买 nike

我只是想读取一个与实际程序位于同一目录中的简单文件。我一直收到这个奇怪的错误,我的 Go 正在“出现”(正如他们所说)。

package main

import (
"bufio"
"fmt"
"io/ioutil"
"os"
"path/filepath"
)

func check(e error) {
if e != nil {
panic(e)
}
}

func main() {
// Here's opening a flat file via the program.
// fn := " ... /foo.txt"
here, err := filepath.Abs(".")
check(err)

fmt.Println("------- DEBUG ------- ")
fmt.Println(here)
fmt.Println("------- DEBUG ------- ")

reader := bufio.NewReader(os.Stdin)
fmt.Print("Please Enter a File Name: ")

f, err := reader.ReadString('\n')
f = filepath.Join(here, f)
fmt.Println(f)
check(err)

dat, err := ioutil.ReadFile(f)
check(err)
fmt.Print(string(dat))
}

所以这是奇怪的错误,我不断收到。

panic: open ... /foo.txt
: no such file or directory

goroutine 1 [running]:
main.check(0x22081c49a0, 0x2081ec240)
... /read.go:13 +0x50
main.main()
... /read.go:36 +0x6b0
exit status 2

当我只使用静态名称而不是标准名称时,它工作正常。 standard in 拉入该字符串然后尝试将其转换为文件路径的方式一定有些奇怪。

最佳答案

f, err := reader.ReadString('\n')

这会读取并包括 \n。所以你的文件名是 /foo.txt\n 不存在。

如果您愿意,可以使用 strings.Trim() 来取消换行。

关于高语 : Reading a File Basics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com