iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go语言如何实现读取文件
  • 164
分享到

Go语言如何实现读取文件

2023-07-05 22:07:31 164人浏览 薄情痞子
摘要

这篇文章主要介绍“Go语言如何实现读取文件”,在日常操作中,相信很多人在Go语言如何实现读取文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言如何实现读取文件”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“Go语言如何实现读取文件”,在日常操作中,相信很多人在Go语言如何实现读取文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言如何实现读取文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

整个文件读取

我们可以很容易地一次性读取整个文件并将其存储在一个变量中。但请记住,我们不应该对大文件这样做。我们将使用ioutil.ReadFile() 函数来读取文件并将文件的内容存储在一个变量中。

首先,让我们在我们程序所在的同一目录下存储一个文件。因此,我们的文件夹结构将是下面这样的。

___ 

|_ _ _ _ ilovego.txt | 
|_ _ _ _ main.go

我们在 main.go 函数中写入如下的内容:

package mainimport ("fmt""io/ioutil""log")func main() {content, err := ioutil.ReadFile("ilovego.txt")if err != nil {log.Fatal(err)}fmt.Println(string(content))}

但首先,让我们讨论一下 ReadFile() 函数的情况:

  • 定义:方法声明 func ReadFile(filename string) ([]byte, error)

  • 功能:读取路径被传入函数参数的文件,并返回文件的内容。在内部使用 os.ReadFile(fileName) 方法

  • 返回:在一个字节数组中返回文件的内容和错误。一个成功的调用将返回 err == nil

内部 ReadFile 函数实现如下:

func ReadFile(filename string) ([]byte, error) {    return os.ReadFile(filename)}

现在,让我们回到我们的程序:

  • ioutil.ReadFile("readthisfile.txt") 返回一个 byteArray 和一个 err。我们将byteArray 存储在 "content "变量中,错误存储在 " err "变量中。

  • 然后我们放置了一个 if 条件,如果 err 值不为 nil,我们将使用 log.Fatal() 函数打印错误 err 。记住,Fatal() 函数等同于 Print() 函数,然后调用 os.Exit(1)

  • 最后,我们将使用 fmt.Println() 函数打印文件的内容。 我们不能简单地打印 content 变量,因为它是一个字节数组,我们需要将它转换为字符串: string(content)

然后新建一个 ilovego.txt 文件,写入如下内容:

I Love golang,
This is One of the Best Languages on the World!

最后,执行上述代码,可以看到如下输出:

$ go run main.go
I Love Golang, 
This is One of the Best Languages on the World!

按行读取

Scanner 扫描器提供了一个方便的接口来读取数据,比如一个由新行分隔的文本行组成的文件。它通过标记来读取数据;Split 函数定义了标记。默认情况下,该函数将数据分成几行,并剥离了行端。

package mainimport ("fmt"// "io/ioutil""bufio""log""os")func main() {// opening the file using Open functionf, err := os.Open("ilovego.txt")if err != nil {log.Fatal(err)}defer f.Close()// create a scanner for the filescanner := bufio.NewScanner(f)// loop through the scanner until it return faslefor scanner.Scan() {fmt.Println(scanner.Text())}if err := scanner.Err(); err != nil {log.Fatal(err)}}
  • os.Open() 打开参数中传递的文件。如果在打开文件时遇到任何错误,它将返回同样的错误。否则,错误将是 nil。

  • 然后,我们使用扫描器来读取文件,并逐行扫描,直到文件内容结束。

  • 最后,我们要关闭该文件。

执行程序,结果如下:

Go语言如何实现读取文件

逐个单词读取

我们还可以通过逐个单词来读取文件:

package mainimport ("bufio""fmt""os")func main() {f, err := os.Open("ilovego.txt")if err != nil {fmt.Println(err)}defer f.Close()scanner := bufio.NewScanner(f)scanner.Split(bufio.ScanWords)for scanner.Scan() {fmt.Println(scanner.Text())}if err := scanner.Err(); err != nil {fmt.Println(err)}}

运行代码:

$ go run main.go
I
Love
Golang,
This
is
One
of
the
Best
Languages
on
the
World!

以数据块的形式读取文件

一次性读取整个文件似乎是一种简单的方法,但有时我们需要从内存管理的角度使我们的程序得到一些优化。Golang 提供了一种分块读取文件的方法,而不是整个或甚至逐行读取。因为如果一行的大小太大,逐行读取也可能是低效的。

package mainimport ("bufio""fmt""io""log""os")func main() {f, err := os.Open("ilovego.txt")if err != nil {log.Fatal(err)}defer f.Close()reader := bufio.NewReader(f)buf := make([]byte, 16)for {                // reading a file upto buffern, err := reader.Read(buf)if err != nil {if err != io.EOF {log.Fatal(err)}break}fmt.Print(string(buf[0:n]))}fmt.Println()}

二进制读取

hex 包实现了十六进制的编码和解码。

package mainimport ("bufio""encoding/hex""fmt""io""log""os")func main() {f, err := os.Open("sid.jpg")if err != nil {log.Fatal(err)}defer f.Close()reader := bufio.NewReader(f)buf := make([]byte, 256)for {_, err := reader.Read(buf)if err != nil {if err != io.EOF {fmt.Println(err)}break}fmt.Printf("%s", hex.Dump(buf))}}

到此,关于“Go语言如何实现读取文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Go语言如何实现读取文件

本文链接: https://www.lsjlt.com/news/355698.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言如何实现读取文件
    这篇文章主要介绍“Go语言如何实现读取文件”,在日常操作中,相信很多人在Go语言如何实现读取文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言如何实现读取文件”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • Go语言如何读取YAML配置文件
    今天小编给大家分享一下Go语言如何读取YAML配置文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。yaml.v3 包yam...
    99+
    2023-07-04
  • Go语言实现读取文件的方式总结
    目录前言整个文件读取按行读取逐个单词读取以数据块的形式读取文件二进制读取总结前言 这篇文章将讨论如何在 Golang 中读取文件。我们将使用以下包来处理这些文件。 os 包提供了一个...
    99+
    2023-05-14
    Go语言读取文件方式 Go语言读取文件 Go语言 文件
  • Go语言如何读取txt文档
    这篇文章将为大家详细讲解有关Go语言如何读取txt文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。文档内容每行是一个文件名信息,含有空格区分不同项;ioutil.ReadFile返回的是[]bytes切...
    99+
    2023-06-28
  • c语言如何读取文件
    在C语言中,可以使用标准库函数fopen和fread来读取文件。 首先,需要使用fopen函数打开文件,并返回一个指向FILE结构体...
    99+
    2024-02-29
    c语言
  • Go语言使用buffer读取文件的实现示例
    目录使用 bufio 包写入文件使用 bufio 包读取文件buffer 是缓冲器的意思,Go语言要实现缓冲读取需要使用到 bufio 包。bufio 包本身包装了 io.Reade...
    99+
    2023-05-14
    Go buffer读取文件 Go buffer读取
  • 如何在Go语言中读取和解析索引文件?
    Go语言是一种开源的静态编译型编程语言,由Google公司开发,目前已经成为众多开发者的首选语言。在Go语言中,索引文件是一种常见的数据结构,它可以帮助我们快速地定位到所需要的信息。在本文中,我们将介绍如何在Go语言中读取和解析索引文件,以...
    99+
    2023-08-15
    二维码 unix 索引
  • R语言中如何读取CSV文件
    在R语言中,可以使用read.csv()函数来读取CSV文件。例如,假设我们有一个名为data.csv的CSV文件,可以使用以下代码...
    99+
    2024-04-08
    R语言
  • R语言中如何读取Matlab文件
    在R语言中,可以使用readMat函数从Matlab文件中读取数据。首先需要安装R.matlab包,然后使用library(R.ma...
    99+
    2024-04-08
    R语言 Matlab
  • Go语言怎么使用buffer读取文件
    这篇文章主要讲解了“Go语言怎么使用buffer读取文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言怎么使用buffer读取文件”吧!buffer 是缓冲器的意思,Go语言要实现缓...
    99+
    2023-07-05
  • Go语言读取文件的四种方式
    目录前言整个文件读取按行读取逐个单词读取以数据块的形式读取文件二进制读取总结前言 这篇文章将讨论如何在 Golang 中读取文件。我们将使用以下包来处理这些文件。 os 包提供了一个...
    99+
    2023-05-15
    Go 读取文件
  • R语言中如何读取Parquet文件
    在R语言中,可以使用arrow包来读取Parquet文件。首先需要安装arrow包,然后使用arrow::read_parquet(...
    99+
    2024-04-08
    R语言
  • 详解Go语言如何使用xorm实现读取mysql
    目录一、介绍二、安装使用xorm,注意连接的关闭!关于连接数的坑以及engine.Close()常用方法介绍三、mysql生产struct四、xorm常用操作示例--insert数据4.1 insert 增加1条数据4....
    99+
    2022-11-19
    Go语言 xorm读取mysql Go语言 读取mysql Go语言 xorm mysql
  • R语言中如何读取Apache Arrow文件
    在R语言中,可以使用arrow包来读取Apache Arrow文件。首先需要安装arrow包,可以使用以下命令来安装: instal...
    99+
    2024-04-08
    R语言
  • Go语言读取文件的方式有哪些
    这篇文章主要介绍了Go语言读取文件的方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言读取文件的方式有哪些文章都会有所收获,下面我们一起来看看吧。整个文件读取我们可以很容易地一次性读取整个文件并将...
    99+
    2023-07-06
  • C语言如何实现随机读写文件
    这篇文章主要讲解了“C语言如何实现随机读写文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现随机读写文件”吧!1.fseek前面已经剧透过了,fseek可以改变记录读写位置的指...
    99+
    2023-07-05
  • c语言如何读取文件里的东西
    在C语言中,可以使用`fopen()`函数打开文件,然后使用`fscanf()`或`fgets()`函数读取文件中的内容。下面是一个...
    99+
    2023-08-26
    c语言
  • Go 语言中如何使用关键字函数来读取文件?
    Go 语言是一种现代化的编程语言,它被广泛应用于各种领域,如网络编程、云计算、数据科学等。在这篇文章中,我们将介绍如何使用 Go 语言中的关键字函数来读取文件。 在 Go 语言中,读取文件的过程可以分为以下三个步骤: 打开文件:使用 ...
    99+
    2023-10-23
    函数 关键字 文件
  • c语言如何从文件中读取数据
    在C语言中,我们可以使用以下步骤从文件中读取数据:1. 打开文件:使用`fopen()`函数打开文件,它接受两个参数,一个是文件名,...
    99+
    2023-09-20
    c语言
  • Python如何实现文件的读取
    这篇文章将为大家详细讲解有关Python如何实现文件的读取,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一·Numpy库中操作文件1.操作csv文件import numpy as&nb...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作