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