猿问

Go:用IO写回车

我正在尝试使用 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”。


谢谢。


呼如林
浏览 225回答 2
2回答

慕侠2389804

问题是 Windows 期望回车的方式,“\n”是 Unix 方式,而“\r\n”是 Windows 方式。所以,只需更换它就可以了。n, err := io.WriteString(f, "Hello World\r\n")

梵蒂冈之花

回车\r不是\n。
随时随地看视频慕课网APP

相关分类

Go
我要回答