次のプロジェクトのための準備では、最初はクライアント前半を書き込みます

彼らだけでは、コードを理解し、

書かれたより腫れて、後でそれを最適化します。

それは定期的に毎日、またはすべての世代のパッケージ、収集情報パッケージである場合には、

APIインタフェースを行くために送ります

次に、データ解析のために。

utils.go

パッケージメイン

インポート(
	"BUFIO"
	"FMT"
	"IO"
	"IO / ioutil"
	"OS"

	「パス/ファイルパス」

FUNC GetAllFile(パス名文字列、ファイル[]の文字列)([]の文字列、エラー){
	fromSlash:= filepath.FromSlash(パス名)
	//fmt.Println(fromSlash)
	RD、ERR = ioutil.ReadDir(fromSlash)
	{ERR!= nilの場合
		//log.LOGGER("Error").Error("read DIR「N \%vを失敗し、ERR)
		fmt.Println( "dirは失敗読み:"、ERR)
		ERR、ファイルを返します
	}
	_、Fiのための:=レンジRD {
		もしfi.IsDir(){
			fullDir:= filepath.Join(fromSlash、fi.Name())
			ファイル、ERR = GetAllFile(fullDir、ファイル)
			{ERR!= nilの場合
				fmt.Println( "dirは失敗読み:"、ERR)
				//log.LOGGER("Error").Error("readは失敗DIR:体積%\ n」は、ERRを)
				ERR、ファイルを返します
			}
		}他{
			fullName = filepath.Join(fromSlash、fi.Name())
			ファイル=アペンド(ファイル、のfullName)
		}
	}
	リターンファイルはnil

}

WRITETOFILE FUNC(ファイル名の文字列、コンテンツの[]の文字列)エラー{
	F、ERR:os.OpenFile =(ファイル名、os.O_WRONLY | os.O_TRUNC | os.O_CREATE、0644)
	{ERR!= nilの場合
		fmt.Printfは( "マップファイルのエラーを作成します。%vを\ n" は、ERR)
		リターンERR
	}
	延期f.Close()

	W:= bufio.NewWriter(F)

	_、項目の:=範囲コンテンツ{
		fmt.Fprintln(W、項目)
	}
	リターンw.Flush()
}

ReadFromFile(ファイル名の文字列)([]の文字列、エラー){FUNC
	コンテンツ:= []の文字列{}
	Fiの、ERR = os.Open(filename)で
	{ERR!= nilの場合
		fmt.Printf( "エラー:%sの\ n" は、ERR)
		ERR、nilを返します
	}
	延期fi.Close()

	BR:= bufio.NewReader(FI)
	ために {
		アイテム、_、C:= br.ReadLine()
		もしC == io.EOF {
			ブレーク
		}
		コンテンツ=アペンド(コンテンツ、文字列(アイテム))
	}
	コンテンツ、nilを返します
}

  

main.go

パッケージメイン

インポート(
	"FMT"

FUNCのmain(){
	VAR oldContent、newContent []の文字列
	ログファイル:= "D:\\ TEMP \\ log.txtという"

	oldContent、ERR = ReadFromFile(ログファイル)
	{ERR!= nilの場合
		パニック(ERR)
	}
	=範囲oldContent {I、V用
		fmt.Println(I、V)
	}

	newContent、ERR = GetAllFile( "D:\\ソフトウェア"、newContent)
	{ERR!= nilの場合
		パニック(ERR)
	}
	ERR = WRITETOFILE(ログファイル、newContent)
	{ERR!= nilの場合
		パニック(ERR)
	}

}

  

おすすめ

転載: www.cnblogs.com/aguncn/p/12026381.html