import ( "fmt" "os" ) func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } //对文件进行操作 //关闭 defer表示延迟执行 defer file.Close() }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 n, err := file.WriteString("aaaaaaaaaaa") if err != nil { fmt.Println(err) } fmt.Println(n) }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 var str string = "Hello Wprld" n, err := file.Write([]byte(str)) //需要将字符串转换成字节切片 if err != nil { fmt.Println(err) } fmt.Println(n) }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 var str string = "Hello World002" file.WriteString("Hello World001") n, err := file.WriteAt([]byte(str), 2) //第二个参数表示指定位置写入数据 if err != nil { fmt.Println(err) } fmt.Print(n) }
openFile方法
openFile有3个参数,
第一个参数表示打开文件的路径,
第二个参数表示:模式,常见的模式有O_RDONLY(只读模式),O_WRONLY(只写模式),O_RDWR(可读可写),O_APPEND(追加模式)
O_RDWR:在文件开头进行替换
O_WRONLY:在文件开头进行替换
O_APPEND:在文件末尾处进行追加
第三个参数表示:权限,取值范围(0——7)
表示如下:
0:表示没有任何权限
1:执行权限
2:写权限
4:读权限
其他数字为1,2,4权限相互组合
func main() { file, err := os.OpenFile("D:/Test/a.txt", os.O_APPEND, 6) if err != nil { fmt.Println(err) } defer file.Close() num, err := file.WriteString("Hello World001") fmt.Println("num = ", num) if err != nil { fmt.Println(err) } }
open方法与openFile方法的不同
open方法是封装openFile方法的方法,open方法直接return OpenFile(name, os.O_RDONLY, 0)
func main() { //1.打开要读取的文件 file, err := os.OpenFile("D:/Test/a.txt", os.O_RDONLY, 0) if err != nil { fmt.Println(err) } defer file.Close() //2.顶一个字符切片,存储从文件中读取的数据 buffer := make([]byte, 1024*2) n, err := file.Read(buffer) if err != nil { fmt.Println(err) } fmt.Println(n) fmt.Println(string(buffer[:n])) }
func main() { //1.打开要读取的文件 file, err := os.OpenFile("D:/Test/a.txt", os.O_RDONLY, 0) if err != nil { fmt.Println(err) } defer file.Close() //2.顶一个字符切片,存储从文件中读取的数据 buffer := make([]byte, 10) for { n, err := file.Read(buffer) if err == io.EOF { break } fmt.Println(string(buffer[:n])) }
func main() { //1.打开要读取的文件 file1, err := os.Open("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file1.Close() //2.创建一个新的文件 file2, err := os.Create("D:/Test/b.txt") if err != nil { fmt.Println(err) } defer file2.Close() //3.顶一个字符切片,存储从文件中读取的数据 buffer1 := make([]byte, 10) for { n, err := file1.Read(buffer1) if err == io.EOF { break } file2.Write(buffer1[:n]) } }