go 计算文件行

package main

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

func main() {
	
	//判断命令行参数,小于两个不执行
	if len(os.Args) < 2 {
		return
	}
	
	//获取命令行参数里的文件名
	filename := os.Args[1]
	
	file, err := os.Open(filename)
	if err != nil {
		fmt.Println(err)
		return
	}

	//defer延时到整个main程序结束时调用文件关闭操作
	defer file.Close()

	//定义行变量
	var line int
	
	//通过bufio读取文件
	reader := bufio.NewReader(file)
	
	//循环读取文件里的每一行
	for {
		_, isPrefix, err := reader.ReadLine()
		if err != nil {
			break
		}

		//对超宽行的判断,这一行是有效的
		if !isPrefix {
			line++

		}

	}
	fmt.Println(line)

}

  执行结果:

 

posted on 2019-06-21 14:49  清明-心若淡定  阅读(258)  评论(0编辑  收藏  举报