赞
踩
package main import( "fmt" "os" ) func main(){ //打开文件: file,err := os.Open("d:/Test.txt"); if err != nil {//出错 fmt.Println("文件打开出错,对应错误为:",err) } //没有出错,输出文件: fmt.Printf("文件=%v",file) //.........一系列操作 //关闭文件: err2 := file.Close(); if err2 != nil { fmt.Println("关闭失败") } }
相关:
//函数
func Open(name string)(file *File,err error)
//方法,限File对象调用
func(f *File) Close() error
package main
import(
"fmt"
"io/ioutil"
)
func main(){
//读取文件:
content,err := ioutil.ReadFile("d:/Test.txt")//返回内容为:[]byte,err
if err != nil {//读取有误
fmt.Println("读取出错,错误为:",err)
}
//如果读取成功,将内容显示在终端即可:
//fmt.Printf("%v",content)
fmt.Printf("%v",string(content))
}
在上面的程序中不需要进行 Open\Close操作,因为文件的打开和关闭操作被封装在ReadFile函数内部了
package main import( "fmt" "os" "bufio" "io" ) 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')//读取到一个换行就结束 if err == io.EOF {//io.EOF 表示已经读取到文件的结尾 break } //如果没有读取到文件结尾的话,就正常输出文件内容即可: fmt.Println(str) } //结束: fmt.Println("文件读取成功,并且全部读取完毕") }
打开文件:
示例:
package main import( "fmt" "os" "bufio" ) func main(){ //写入文件操作: //打开文件: file , err := os.OpenFile("d:/Demo.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("你好 Golang\n") } //流带缓冲区,要刷新流--->才会真正写入文件中: writer.Flush() }
关于权限,不想算可以:
s :=os.FileMode(0666).String()
fmt.Println(s)
package main import( "fmt" "io/ioutil" ) func main(){ //定义源文件: file1Path := "d:/Demo.txt" //定义目标文件: file2Path := "d:/Demo2.txt" //对文件进行读取: content,err := ioutil.ReadFile(file1Path) if err != nil { fmt.Println("读取有问题!") return } //写出文件: err = ioutil.WriteFile(file2Path,content,0666) if err != nil { fmt.Println("写出失败!") } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。