Golang程序 逐行读取文件的内容
在golang中,有各种内部包,如bufio、os和io,可以用来逐行读取文件的内容。bufio和os包用于使用os.open和bufio.NewScanner函数来打开和扫描文件。io包我们将使用ioutil.ReadFile从给定的目的地读取文件,并使用字符串函数将其显示在输出中。
方法1:使用bufio和os包
在这个插图中,bufio.NewScanner被用来逐行读取内容,os.Open被用来打开文件。只要有一行要读,有一个扫描器,扫描方法就会返回真。当前读取的行由文本返回。当该函数返回时,文件将使用defer语句关闭。
语法
这个函数是os包的一部分。它用于打开一个文件进行读取。它需要一个输入,即将被打开的文件名。
这个函数是bufio包的一部分。它用于创建一个扫描器对象,从文件中读取数据。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(格式包)、bufio和os包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 创建一个main函数,在该函数中使用os包中的os.Open函数打开要读取内容的文件。
-
第3步 – 如果在打开文件时出现错误,在控制台打印错误并返回。
-
第4步 – 使用defer关键字和close函数关闭打开的文件。
-
第5步 – 创建一个bufio.NewScanner对象,将文件作为参数放在里面,通过迭代文件的行数来逐行读取内容。
-
第6步 – 迭代中使用的条件是直到文件中出现一行,并将其打印出来,否则使用scanner.Scan()函数终止循环。
-
第7步 – 如果在扫描过程中出现错误,使用fmt.Println()在控制台打印错误。
例子
在这个例子中,我们将使用scanner逐行读取一个文件的内容。
输出
方法2:使用io/ioutil和字符串包
该实例使用ioutil.ReadFile函数将文件的内容以[]字节的形式读入内存。然后使用字符串函数和字符串将内容变成一个字符串。使用Split函数将该字符串分成若干行,每行以换行符隔开。之后,for 循环在迭代完各行后打印每一行。
语法
这个函数在ioutil包中可用,用于读取文件的内容,文件名是函数中的一个输入。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(格式包)、io/ioutil和strings包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 创建一个main函数,在该函数中使用ioutil.ReadFile函数读取文件file1.txt。
-
第3步 – 如果在读取文件时出现错误,打印错误并返回。
-
第4步– 使用strings.Split函数用/n来分割数据。
-
第5步 – 迭代被分割的字符串,逐行打印内容。
-
第6步 – 使用fmt.Println()函数执行打印语句,ln表示新行。
例子
在这个例子中,我们将使用io包中的ioutil.ReadFile函数。
输出
结论
我们用两个例子执行了逐行读取文件内容的程序。在第一个例子中,将使用bufio和os包,在第二个例子中,将使用io/ioutil包。