我试图在Go中用IO.WriteString写一个文件,但是甚至写了#34; \ n"字符它不打印回车。我想也许不是回车本身我需要写的,在Windows中,如果我用Wordpad打开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")
使用此代码,txt文件中的结果为" Hello WorldGoodbye"如果我在Windows记事本中打开它。
感谢。
答案 0 :(得分:3)
问题在于Windows预期回车的方式," \ n"是unix方式," \ r \ n"是Windows方式。
所以,只需更换它就可以了。
n, err := io.WriteString(f, "Hello World\r\n")
答案 1 :(得分:2)
回车符\r
不是\n
。