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)
	}
}

  仍有许多地方可以改进,后面学习更深入后再处理。

posted @ 2020-10-12 21:46  NewBird001  阅读(524)  评论(0)    收藏  举报