From 12fcbd8d19f59ba68cbb421f9fc80ef1e81ed207 Mon Sep 17 00:00:00 2001 From: sre Date: Fri, 17 Jun 2022 17:33:36 +0800 Subject: [PATCH] File file.File --- file/entry.go | 4 ++++ file/entry_test.go | 3 +++ file/file.go | 37 +++++++++++++++++++++++++++++++++++++ file/file_test.go | 14 ++++++++++++++ gtool.go | 2 ++ 5 files changed, 60 insertions(+) create mode 100644 file/entry.go create mode 100644 file/entry_test.go create mode 100644 file/file.go create mode 100644 file/file_test.go diff --git a/file/entry.go b/file/entry.go new file mode 100644 index 0000000..4533248 --- /dev/null +++ b/file/entry.go @@ -0,0 +1,4 @@ +package file + +type File struct { +} diff --git a/file/entry_test.go b/file/entry_test.go new file mode 100644 index 0000000..6ef9ad2 --- /dev/null +++ b/file/entry_test.go @@ -0,0 +1,3 @@ +package file + +var file File diff --git a/file/file.go b/file/file.go new file mode 100644 index 0000000..ea00752 --- /dev/null +++ b/file/file.go @@ -0,0 +1,37 @@ +package file + +import ( + "encoding/base64" + "os" +) + +func (fl *File) ByteToBase64(b []byte) string { + return base64.StdEncoding.EncodeToString(b) +} + +// Base64ToByte base64 string to byte +// baseStr parameter is base64 string +func (fl *File) Base64ToByte(baseStr string) ([]byte, error) { + return base64.StdEncoding.DecodeString(string(baseStr)) +} + +// ByteToFile The byte array is converted into a file and landed +// The parameter b is the bate array filePath file path +func (fl *File) ByteToFile(b []byte, filePath string) error { + //Open file Create a file if there is no file + file, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm) + if err != nil { + return err + } + _, err = file.Write(b) + if err != nil { + return err + } + defer func(file *os.File) { + err := file.Close() + if err != nil { + panic(err) + } + }(file) + return nil +} diff --git a/file/file_test.go b/file/file_test.go new file mode 100644 index 0000000..3225d16 --- /dev/null +++ b/file/file_test.go @@ -0,0 +1,14 @@ +package file + +import ( + "fmt" + "testing" +) + +func TestFile_ByteToBase64(t *testing.T) { + byteStr := []byte("hello world!") + base64Str := file.ByteToBase64(byteStr) + byteresult, _ := file.Base64ToByte(base64Str) + fmt.Println(base64Str) + fmt.Println(byteresult) +} diff --git a/gtool.go b/gtool.go index aa5b0c7..50fead0 100644 --- a/gtool.go +++ b/gtool.go @@ -3,6 +3,7 @@ package gtool import ( "git.sre.ink/go/gtool/convert" "git.sre.ink/go/gtool/crypto" + "git.sre.ink/go/gtool/file" "git.sre.ink/go/gtool/rand" "git.sre.ink/go/gtool/regx" "git.sre.ink/go/gtool/str" @@ -15,4 +16,5 @@ var ( Rand rand.Rand Conv convert.Conv Regx regx.Regx + File file.File )