文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...
(1)打开文件,用于读取:(函数)
传入一个字符串(文件的路径),返回的是文件的指针,和是否打开成功
(2)关闭文件:(方法)
使文件不能用于读写。它返回可能出现的错误
package mainimport( "fmt" "os")func main() { //打开文件: file,err := os.Open("D:/test.txt") if err != nil { fmt.Println("文件打开出错,对应错误为:",err) } //没有出错,输出文件: fmt.Println("文件=v%",file) //.........一系列操作 //关闭文件: err2 := file.Close() if err2 != nil { fmt.Println("关闭失败!") }}
【1】读取文件的内容并显示在终端(使用ioutil一次将整个文件读入到内存中),这种方式适用于文件不大的情况。相关方法和函数(ioutil.ReadFile)
【2】案例:
package mainimport( "fmt" "io/ioutil")func main() { //备注:在下面的程序中不需要进行 Open/Close操作,因为文件的打开和关闭操作被封装在ReadFile函数内部了 //读取文件: content,err := ioutil.ReadFile("D:/test.txt") if err != nil { fmt.Println("读取错误,错误为:",err) } //如果读取成功,将内容显示在终端即可: //fmt.Printf("%v",content) fmt.Printf("%v",string(content))}
【1】读取文件的内容并显示在终端(带缓冲区的方式-4096字节),适合读取比较大的文件,使用os.Open,file.Close,bufio.NewReader(),reader.ReadString函数和方法
【2】案例:
package mainimport( "fmt" "io" "os" "bufio")func main() { file,err := os.Open("D:/test.txt") if err != nil { fmt.Println("打开文件失败,err=:",err) } //当函数退出时,让file关闭,防止内存泄露: defer file.Close() //创建一个流: reader := bufio.NewReader(file) //读取操作: for{ //读取到一个换行就结束 str,err := reader.ReadString('/n') //io.EOF 表示已经读取到文件的结尾 if err == io.EOF { break } //如果没有读取到文件结尾的话,就正常输出文件内容即可: fmt.Println(str) } //结束: fmt.Println("文件读取成功,并且全部读取完毕")}
【1】打开文件操作:
三个参数含义:
(1)要打开的文件的路径
(2)文件打开模式(可以利用"|"符号进行组合)
(3)权限控制(linux/unix系统下才生效,windows下设置无效)- 0666
【2】案例:
package mainimport( "fmt" "os" "bufio")func main() { //写入文件操作: //打开文件: file,err := os.OpenFile("D:/test.txt",os.O_RDWR | os.O_APPEND | os.O_CREATE,0666) if err != nil { fmt.Printf("打开文件失败",err) return } defer file.Close() //写入文件操作:---》IO流---》缓冲输出流(带缓冲区) writer := bufio.NewWriter(file) for i := 0; i < 10; i++ { writer.WriteString("你好 菜园子/n") } //流带缓冲区,刷新数据--->真正写入文件中: writer.Flush() s := os.FileMode(0666).String() fmt.Println(s)}
案例
package mainimport( "io/ioutil" "fmt")func main() { //定义源文件: filePath := "D:/test.txt" //定义目标文件: newPath := "D:/test_copy.txt" //对文件进行读取: content,err := ioutil.ReadFile(filePath) if err != nil { fmt.Printf("打开文件失败",err) return } //写出文件: err = ioutil.WriteFile(newPath,content,0666) if err != nil { fmt.Println("写出失败") }}
本文链接:http://www.28at.com/showinfo-26-122-0.html让我们一起聊聊文件的操作
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 十个简单但很有用的Python装饰器
下一篇: 之家push系统迭代之路