File io Go-尝试创建一个.pgm文件,但最终得到一个二进制文件

File io Go-尝试创建一个.pgm文件,但最终得到一个二进制文件,file-io,go,File Io,Go,我正在读取一个pgm文件,以便对其应用一些过滤器,并将结果重写为一个新的pgm文件。但是,我总是以一个二进制文件结束(vim不显示值,而是^G^0^K等,file命令告诉我这是一个数据文件,imagemagick无法打开该文件) 我写入文件的代码如下所示: fd,err := os.Create(filename) wr := bufio.NewWriter(fd) //img is of type [][]int and holds the values to be written str :

我正在读取一个pgm文件,以便对其应用一些过滤器,并将结果重写为一个新的pgm文件。但是,我总是以一个二进制文件结束(vim不显示值,而是^G^0^K等,file命令告诉我这是一个数据文件,imagemagick无法打开该文件)

我写入文件的代码如下所示:

fd,err := os.Create(filename)
wr := bufio.NewWriter(fd)
//img is of type [][]int and holds the values to be written
str := "P2\n" + filename + "\n" + string(len(img[0])) + ...
if _,err := wr.WriteString(outStr); err != nil {..}
然后,在一个循环中,我通过img数组,得到更多的信息

我在这里遗漏了什么?

字符串(len(img[0])没有执行您在这里尝试执行的操作。您需要
strconv.Itoa

string(len(img[0]))
正在创建一个字符串,其中包含
len(img[0])
(请参阅)

string(len(img[0]))
的Unicode代码点。您需要
strconv.Itoa

string(len(img[0]))
正在创建单个字符串,其中包含
len(img[0])
的Unicode码点(请参阅)