ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go语言——文件处理

2022-05-15 00:03:51  阅读:137  来源: 互联网

标签:文件 语言 err nil fmt Println file go os


创建文件

import (
    "fmt"
    "os"
)

func main() {
    //创建文件时,需要指定文件的存储路径以及文件名称
    file, err := os.Create("D:/Test/a.txt")

    if err != nil {
        fmt.Println(err)
    }

    //对文件进行操作

    //关闭 defer表示延迟执行
    defer file.Close()
}

WriteString方法

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)
}

Write方法

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)
}

WriteAt方法,是在指定位置写入文件内容

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])
    }
}

 

标签:文件,语言,err,nil,fmt,Println,file,go,os
来源: https://www.cnblogs.com/tester-hqser/p/16271974.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有