golang练习,提取两个文本文件不相同的部分
package main
import (
"fmt"
//"flag"
"os"
"bufio"
)
func main(){
fmt.Println("Welcome to use My Program.")
fmt.Println("Start checking parameters...")
ParamCheck()
var srcpath string = os.Args[1] //从命令行读取对比的两个文件
var despath string = os.Args[2]
ReadLine(srcpath,despath)
}
//参数检查函数,检查参数是否是2个
func ParamCheck(){
if len(os.Args) != 3{
fmt.Println("Paramters nums is not right.Exit...")
os.Exit(1)
}
}
//读取两个文件内容用来对比
func ReadLine(srcpath string,despath string){
srcfile,srcerr := os.Open(srcpath)
if srcerr != nil{
fmt.Println("Encountered an error while reading the source file...Exit")
os.Exit(2)
}
defer srcfile.Close()
desfile,deserr := os.Open(despath)
if deserr != nil{
fmt.Println("Encountered an error while reading the target file...Exit")
os.Exit(3)
}
defer desfile.Close()
sscanner := bufio.NewScanner(srcfile)
dscanner := bufio.NewScanner(desfile)
for sscanner.Scan() && dscanner.Scan(){
sline := sscanner.Text()
dline := dscanner.Text()
ContentCheck(sline,dline)
}
}
//对比两个字符串是否不同
func ContentCheck(sline string,dline string){
if sline != dline {
fmt.Println("Difference:")
fmt.Printf("src:%s\ndes:%s\n",sline,dline)
}
}
仍有许多地方可以改进,后面学习更深入后再处理。

浙公网安备 33010602011771号