打开和关闭文件
从 Go 1.16 开始,现在提供了相同的功能 通过包 IO 或包操作系统,以及这些实现 应该在新代码中首选。 有关详细信息,请参阅特定函数文档。
弃用了"io/ioutil"对文件的操作
读取文件方法一(os.open+file.read只读形式):
os.Open()
函数能够打开一个文件,返回一个
*File
和一个
err
。
操作完成文件对象以后一定要记得关闭文件(使用defer延迟执行函数)
注意这个是只读的形式,如果要修改文本内容不能用这个方式
func (f *File) Read(b []byte) (n int, err error)
它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回 0 和 io.EOF
一、读取文件(方法1)
1、只读方式打开文件 file,err := os.Open()
2、读取文件 file.Read()
3、关闭文件流 defer file.Close()
打开文件的操作,获取到了文件的地址
func main(){
fileInfo,err := os.Open("./main.go")
//延迟关闭文件,避免内存泄漏
defer fileInfo.Close()
//判断一下文件是否打开
if err != nil {
fmt.Println(err)
return
}
//操作文件
fmt.Println(fileInfo)
//打印出一个地址&{0xc00010c780}
}
读取文件内容
//有绝对路径以及相对路径
func main(){
file,err := os.Open("./main.go")
//延迟关闭文件,避免内存泄漏
defer file.Close()
//判断一下文件是否打开
if err != nil {
fmt.Println(err)
return
}
//操作文件
// fmt.Println(fileInfo)
//打印出一个地址&{0xc00010c780}
//定义一个byte类型的切片,可以缓存数据
var strSlice []byte
var HuanChun = make([]byte, 256) //表示一次可以读取的数据流为256,然后定制循环流方式读取
for{
fileInfo,err := file.Read(HuanChun)
if err