go语言之文件读写


文件操作用到os库。涉及到几个函数分别为os.Open/os.Create/os.OpenFile/os.Remove/os.RemoveAll

(1) 当文件不存在的时候,使用os.Create

var buffer bytes.Buffer
buffer.WriteString("abcd")
file,error:=os.Create("test.txt")
defer file.Close()
if error !=nil{
fmt.Println("file create fail")
}
file.Write(buffer.Bytes()) //写入字节
file.WriteString("\n") //写入字符串
file.Write(buffer.Bytes())

(2) 当文件存在的时候,使用os.OpenFile

file,error:=os.OpenFile("test.txt",os.O_RDWR|os.O_CREATE,0766)
defer file.Close()
if error !=nil{
fmt.Println("file create fail")
}

其中读写权限的含义如下:

O_RDWR: 读写方式打开

O_CREATE:如果文件不存在,则先创建

O_WRONLY: 只写

O_RDONLY:只读

O_APPEND:追加方式写

O_SYNC:以同步I/O的方式打开

第三个参数:权限

0:没有任何权限

1:执行权限

2:写权限

3:写权限和执行权限

4:读权限

5:读权限和执行权限

6:读权限和写权限

7:读权限,写权限,执行权限

 

(3) 逐行读文件,需要使用到bufio库

br:=bufio.NewReader(file)
for{
a,_,c:=br.ReadLine()
if c == io.EOF{
break
}
fmt.Println(string(a))
}
(4) 删除文件
     del := os.Remove( "./1.txt" );
     if  del != nil {
         fmt.Println(del);
     }
 (5) 删除指定path下的所有文件
     delDir := os.RemoveAll( "./dir" );
     if  delDir != nil {
         fmt.Println(delDir);
     }

 

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM