https://studygolang.com/articles/29182?fr=sidebar
先引用一下这篇文章,结合实际工作经验,我发现:
文件读写尽量别用buffer缓冲区来搞,被坑惨了,因为他是要设置size的,不然读写的文件会奇奇怪怪
比如图片底部给你缺一点之类的😱
最好就是用golang的io/ioutil
包来搞,避开bufio
这个坑b玩意,如下:
简单覆盖式文件写入:
特点 :1.操作简单一个函数完成数据写入2.新内容覆盖旧的内容3.操作的文件不存在的时候会自动创建
filename 操作的文件名;data 写入的内容;perm 文件不存在时创建文件并赋予的权限,例如 : 0666
package ioutil
func WriteFile(filename string, data []byte, perm os.FileMode) error{}
这里的perm具体详解:
一般都文件属性标识如下:
-rwxrwxrwx第1位:文件属性,一般常用的是"-",表示是普通文件;"d"表示是一个目录。
第2~4位:文件所有者的权限rwx (可读/可写/可执行)。
第5~7位:文件所属用户组的权限rwx (可读/可写/可执行)。
第8~10位:其他人的权限rwx (可读/可写/可执行)。
在golang中,可以使用os.FileMode(perm).String()来查看权限标识:
os.FileMode(0777).String() //返回 -rwxrwxrwx
0777表示:创建了一个普通文件,所有人拥有所有的读、写、执行权限 os.FileMode(0666).String() //返回
-rw-rw-rw- 0666表示:创建了一个普通文件,所有人拥有对该文件的读、写权限,但是都不可执行 os.FileMode(0644).String() //返回 -rw-r–r--
0644表示:创建了一个普通文件,文件所有者对该文件有读写权限,用户组和其他人只有读权限,都没有执行权限注意,golang中创建文件指定权限时,只能以"0XXX"的形式,不能省掉前面的"0",否则指定的权限不是预期的