• GO文件读写01---读文件


    打开文件

    package main
    
    import (
    	"fmt"
    	"os"
    )
    
    /*
    buffer 缓冲区
    utility 便利的工具
    util 便捷工具(傻瓜式调用)
    permission 权限
    */
    
    //便捷的打开文件
    func main021() {
    	//打开文件,返回文件对象的指针和错误
    	filePtr, err := os.Open("F:/BlockChain/code/W2/day4/测试文件")
    
    	//如果有错误,说明打开失败,否则就是打开成功
    	if err != nil{
    		fmt.Printf("打开文件失败,err=%s",err)
    
    		//结束当前函数
    		return
    	}else {
    		fmt.Println("打开文件成功")
    	}
    
    	//文件是IO资源,使用完毕一定要关闭文件,以释放IO资源
    	defer func() {
    		filePtr.Close()
    		fmt.Println("文件已关闭")
    	}()
    
    	//打印文件信息
    	fmt.Println("filePtr=",filePtr)
    
    }
    
    func main() {
    	//file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_RDONLY, 0)
    	file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0)
    	if err!=nil{
    		fmt.Println("文件打开失败,err=",err)
    		return
    	}else {
    		fmt.Println("文件打开成功")
    	}
    	defer file.Close()
    }
    

    缓冲式读文件

    package main
    
    import (
    	"bufio"
    	"fmt"
    	"io"
    	"os"
    )
    
    func main() {
    	file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_RDONLY, 0)
    	if err != nil{
    		fmt.Println("文件打开失败,err=",err)
    		return
    	}else{
    		fmt.Println("文件打开成功")
    	}
    	//函数返回前,关闭文件,释放io资源
    	defer func() {
    		file.Close()
    		fmt.Println("文件已关闭")
    	}()
    
    	//创建文件的缓冲读取器
    	reader := bufio.NewReader(file)
    
    	//循环读取数据,以换行符为定界符,直到文件末尾
    	for{
    		//读取一段字符串,以换行符为定界符
    		line, err := reader.ReadString('
    ')
    		//判断读取是否有错误
    		if err != nil{
    			fmt.Println("读取失败,err=", err)
    
    			//读到了文件末尾
    			if err == io.EOF{
    				fmt.Println("已到文件末尾")
    				//退出循环
    				break
    			}
    		}else{
    			//没有错误读取成功,打印读到的数据
    			fmt.Print(line)
    		}
    	}
    
    
    	fmt.Println("文件读取结束")
    }
    

    使用ioutil包下的API进行便捷的读取

    func main() {
    	//读取指定文件,获取原始字节,其内部调用了文件的打开与关闭
    	bytes, err := ioutil.ReadFile("F:/BlockChain/code/W2/day4/测试文件")
    	//判断是否有错误
    	if err != nil{
    		fmt.Println("文件读取失败,err=",err)
    		return
    	}else {
    		//将原始字节强转为string并输出
    		fmt.Println("文件读取成功")
    		text := string(bytes)
    		fmt.Println(text)
    	}
    }
    

      

  • 相关阅读:
    1.4(java学习笔记) 面向对象内存分析
    1.3(java学习笔记)构造方法及重载
    1.2(java学习笔记)类与对象
    1.1(java学习笔记) 面向过程与面向对象
    STM32F0库函数初始化系列:GPIO配置
    STM32F4库函数初始化系列:PWM输出
    STM32F4库函数初始化系列:DMA串口接收
    STM32F4库函数初始化系列:三重ADC——DMA
    STM32F1库函数初始化系列:DMA—ADC采集
    STM32F4库函数初始化系列:串口DMA接收
  • 原文地址:https://www.cnblogs.com/yunweiqiang/p/11962872.html
Copyright © 2020-2023  润新知