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) }
执行结果: