Go:用IO写回车

标签 go

<分区>

我正在尝试使用 IO.WriteString 在 Go 中写入文件,但即使写入“\n”字符也不会打印回车符。我想也许回车本身不是我需要写的,在 Windows 中,如果我用写字板打开 txt 文件,会显示回车,但不会在记事本中显示。

关于这种行为有什么想法吗?这里是代码:

//Write
t := time.Now().Local()
src, err := os.Stat("/dir")
if err != nil {
    log.Println(err, log.Llongfile)
}
if !src.IsDir() {
    err = errors.New("Folder does not exists")
    log.Println(err, log.Llongfile)
    err = os.MkdirAll("/dir", 665)
    log.Println(err, log.Llongfile)
}
f, err := os.Create("/dir" + "/File_" + t.Format("20060102") + ".txt")
n, err := io.WriteString(f, "Hello World\n")
n, err = io.WriteString(f, "Goodbye\n")

使用此代码,如果我在 Windows 记事本中打开它,txt 文件中的结果是“Hello WorldGoodbye”。

谢谢。

最佳答案

问题是 Windows 期望回车的方式,“\n”是 Unix 方式,“\r\n”是 Windows 方式。

所以,只需更换它就可以了。

n, err := io.WriteString(f, "Hello World\r\n")

关于Go:用IO写回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604999/

相关文章:

go - 如何在不进入子目录的情况下迭代目录

go - 使用golang + vscode报错如何修复

postgresql - Postgres 在数据库 : Could not detect default username 上运行查询时出错

go - golang中强制返回错误

go - 将数据添加到map [string] interface {}

pointers - 我是否只需要考虑性能指针?

go - 为什么当我将 `opencv.NewWindow()` 移动到子函数时我的程序立即终止?

具有接收指定接口(interface)参数的函数的 Golang 接口(interface)

json - 如何将 JSON 数组中的所有键大写?

macos - 运行 go 给我 - go clang : error: no input files