美文网首页
Go语言之文件读取与终端读取

Go语言之文件读取与终端读取

作者: CaiGuangyin | 来源:发表于2020-04-27 15:48 被阅读0次

    从文件一次性读取全部数据

    // 从文件读取数据
    func ReadFile() {
        file, err := os.Open("src/go_xuexi_190121/day07/e2_bufio/main/test.txt")
        if err != nil {
            fmt.Println("open file failed, error: ", err)
            return
        }
        defer file.Close()
        str, err := ioutil.ReadAll(file)
        if err != nil {
            fmt.Println("error: ", err)
            return
        }
        fmt.Println("文件内容:", string(str))
    }
    

    直接读取文件全部内容

    // 直接读取文件内容
    func ZhiRead() {
        str, err := ioutil.ReadFile("src/go_xuexi_190121/day07/e2_bufio/main/test.txt")
        if err != nil {
            fmt.Println("read file failed, error: ", err)
            return
        }
        fmt.Printf("文件内容: %s", string(str))
    }
    

    逐行读取文件内容

    // 利用Bufio读取文件, 这种方法是逐行读取文件内容。
    func BufReadFile() {
        file, err := os.Open("D:\\Goproject\\src\\go_xuexi_190121\\day07_文件操作_命令行参数\\e2_bufio\\main\\test.txt")
        if err != nil {
            if err == io.EOF {
                fmt.Println("read file completed.")
                return
            } else {
                fmt.Println("open file failed, error: ", err)
                return
            }
        }
        defer file.Close()
        reader := bufio.NewReader(file) // 传入文件句柄
        // 必须循环,否则只读取一行数据
        for {
            str, err := reader.ReadString('\n') // 此方法的本质是调用 reader.ReadBytes() 方法,然后将字节数组转换成字符串:string(bytes)
            if err != nil {
                if err == io.EOF {
                    fmt.Println("read file finished.")
                    return
                } else {
                    fmt.Println("read file failed, error: ", err)
                    return
                }
            }
            fmt.Printf("%s", str)
            fmt.Println("#*****************************************************************#" )
        }
    }
    

    从标准输入读取数据

    // 从标准输入读取数据
    func ReadStdin() {
        reader := bufio.NewReader(os.Stdin)
        str, err := reader.ReadString('\n')
        if err != nil {
            fmt.Println("error: ", err)
        }
        fmt.Printf(">>> %s\n", str)
    }
    

    相关文章

      网友评论

          本文标题:Go语言之文件读取与终端读取

          本文链接:https://www.haomeiwen.com/subject/ldtuwhtx.html