1.CSV
encoding/csv 包提供對 csv 文件讀寫的操作
a) 常用結構體
⚫ Reader
常用函數
➢ NewReader
常用方法
➢ Read
➢ ReadAll
⚫ Writer
常用函數
➢ NewWriter
常用方法
➢ Write
➢ WriteAll
➢ Flush
(1)Csvreader
package main
import (
"encoding/csv"
"fmt"
"io"
"os"
)
func main() {
file,err := os.Open("user.csv")
if err == nil {
defer file.Close()
//這裏也可以用帶緩衝的
reader := csv.NewReader(file)
for {
line,err := reader.Read()
if err != nil {
if err != io.EOF{
fmt.Println(err)
}
break
}else {
fmt.Println(line)
}
}
}
}
(2)Csvwriter
package main
import (
"encoding/csv"
"os"
)
func main() {
file ,err:= os.Create("user.csv")
if err != nil {
}else if err == nil {
defer file.Close()
writer := csv.NewWriter(file)
writer.Write([]string{"ID","Age","Name"})
writer.Write([]string{"1","24","c"})
writer.Flush()
}
}
2.GOB
encoding/gob 包提供了對數據結構進行二進制序列化的功能
a) 常用函數
⚫ Register:註冊 gob 編解碼記錄值
⚫ RegisterName:註冊 gob 編解碼記錄值,並指定名稱
b) 常用結構體
⚫ Encoder
常用函數
➢ NewEncoder: 創建編碼器
常用方法
➢ Encode:將對象進行編碼到流對象中
⚫ Decoder
常用函數
➢ NewDecoder:創建解碼器
常用方法
➢ Decode:將流對象中的數據編碼到對象中
(1)Gobdecode
package main
import (
"encoding/gob"
"fmt"
"os"
)
type User struct {
ID int
Name string
}
func main() {
//把文件中的數據放在內存中
users := map[int]User{}
file,err := os.Open("user.gob")
if err == nil {
defer file.Close()
decoder := gob.NewDecoder(file)
decoder.Decode(&users)
fmt.Println(users)
}
}
(2)Gobencode
package main
import (
"encoding/gob"
"os"
)
type User struct {
ID int
Name string
}
func main() {
users := map[int]User{
1:{1,"AA"},
2:{2,"BB"},
3:{3,"CC"},
}
//把內存中的數據存在文件中
file,err := os.Create("user.gob")
if err == nil {
defer file.Close()
encoder := gob.NewEncoder(file)
encoder.Encode(users)
}
}