从现有文件中读取完整文本的Golang程序

从现有文件中读取完整文本的Golang程序

在这篇Golang文章中,我们将使用io/ioutil包的ReadFile函数,bufio包的NewScanner函数,以及该函数的前身包中的NewReader函数分别从字符串文件读取整个文本。

语法

bufio.NewReader()
Go

此函数属于Go的bufio包。该函数的主要目的是一次性读取数据而不是逐行读取,并将其存储在缓冲区中。io.reader和缓冲区大小分别作为参数传递给此函数。

os.Open()
Go

此函数是os包的一部分。它用于打开要读取的文件。它只取一个输入,即将打开的文件名。

ioutil.ReadFile()
Go

此函数在ioutil包中可用,并且用于读取函数输入中的文件名的内容。

bufio.NewScanner()
Go

此函数是bufio包的一部分。它用于创建扫描对象以从文件中读取数据。

算法

  • 在程序中导入所需的包

  • 创建一个主要的函数

  • 使用内置函数读取文件的内容

  • 如果未正确读取内容,则输出错误

示例1

在这个示例中,我们将编写一个Go语言程序,通过使用ioutil包中的ReadFile()函数从现有文件中读取整个文本。此函数读取文件的全部内容并将其返回为字节切片。

package main

import (
   "fmt"
   "io/ioutil"
)

func main() {
   data, err := ioutil.ReadFile("file.txt")
   if err != nil {
      fmt.Println("Error reading file:", err)
      return
   }
   fmt.Println(string(data))
}
Go

输出

字典说是托马斯·爱迪生(Thomas Edison)将hello投入常规使用。他敦促使用他的电话的人在回答电话时说“hello”。
他的竞争对手亚历山大·格拉汉姆·贝尔(Alexander Graham Bell)认为更好的单词是“ahoy”。
Go

示例2

在这个示例中,我们将使用os和bufio包中的函数编写一个go语言程序,从现有文件中读取整个文本。

package main

import (
   "bufio"
   "fmt"
   "os"
)

func main() {
   file, err := os.Open("file.txt")
   if err != nil {
      fmt.Println("Error opening file:", err)
      return
   }
   defer file.Close()

   scanner := bufio.NewScanner(file)
   for scanner.Scan() {
      fmt.Println(scanner.Text())
   }

   if err := scanner.Err(); err != nil {
      fmt.Println("Error reading file:", err)
   }
}
Go

输出

字典说是托马斯·爱迪生(Thomas Edison)将hello投入常规使用。他敦促使用他的电话的人在回答电话时说“hello”。
他的竞争对手亚历山大·格拉汉姆·贝尔(Alexander Graham Bell)认为更好的单词是“ahoy”。
Go

示例3

在这个示例中,我们将使用NewReader函数从文件中读取整个文本的go语言程序。这种方法比前面的方法更加控制阅读过程。

package main

import (
   "bufio"
   "fmt"
   "os"
)

func main() {
   file, err := os.Open("file.txt")
   if err != nil {
      fmt.Println("Error opening file:", err)
      return
   }
   defer file.Close()

   reader := bufio.NewReader(file)
   data, err := reader.ReadString('\n')
   if err != nil {
      fmt.Println("Error reading file:", err)
      return
   }
   fmt.Println(data)
}
Go

输出

据说是托马斯·爱迪生将“hello”普及起来。他敦促使用他电话的人在接电话时说“hello”。
他的竞争对手亚历山大·格拉汉姆·贝尔认为更好的词语是“ahoy”。
Go

结论

我们已成功编译和执行了一个Go语言程序,从现有文件中读取整个文本以及示例。在第一个示例中,我们使用了ReadFile()函数,而在第二个和第三个示例中,我们使用了NewScanner()和NewReader()函数来实现结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册