天天看点

GO语言简单存储数据-随笔1

最近开始接触go语言,还是很好上手的一门语言,写个超简单的本地记录存储放在这。

package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
	"strconv"
	"strings"
)

type recode struct {
	number int
	time   string
	name   string
	info   string
}

var AllCode []recode

func SetInfo() {
	fmt.Println("请输入本次记录(记录员/记录时间/记录信息):")
	var message string
	fmt.Scanln(&message)
	recodes := strings.Split(message, "/")

	if len(recodes) == 3 {
		ConfirmInfo(recodes)
	}
}

func ConfirmInfo(args []string) {
	var inputRecode recode
	if len(args) == 3 {
		inputRecode.name, inputRecode.time, inputRecode.info = args[0], args[1], args[2]
		inputRecode.number = GetNum() + 1
	} else if len(args) == 4 {
		number, _ := strconv.Atoi(args[0])
		inputRecode.number, inputRecode.name, inputRecode.time, inputRecode.info = number, args[1], args[2], args[3]
	} else {
		return
	}

	AllCode = append(AllCode, inputRecode)
}

func GetNum() int {
	for k, v := range AllCode {
		if v.number == 0 {
			return k
		}

		if k == len(AllCode)-1 && v.number != 0 {
			return len(AllCode)
		}
	}

	return 0
}

func FindData() {
	var num int = GetNum()
	if num == 0 {
		return
	}

	fmt.Println("请输入查询关键词:")
	var find string
	fmt.Scan(&find)
	for _, v := range AllCode {
		if v.name == find {
			fmt.Println(v.number, ":", v.name, "/", v.time, "/", v.info)
		}
	}
}

func main() {
	GetData()
	SetInfo()
	FindData()
	SaveData()
}

func SaveData() {
	filePath := "E:/GO_work/data.txt"
	file, _ := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, 0666)
	write := bufio.NewWriter(file)
	for _, v := range AllCode {
		if v.number != 0 {
			write.WriteString(strconv.Itoa(v.number) + "/" + v.name + "/" + v.time + "/" + v.info)
		}
		write.WriteString("\n")
	}
	write.Flush()
	file.Close()
}

func GetData() {
	filePath := "E:/GO_work/data.txt"
	file, _ := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, 0666)
	read := bufio.NewReader(file)
	for {
		lineBytes, err := read.ReadBytes('\n')
		line := string(lineBytes)
		ConfirmInfo(strings.Split(line, "/"))
		if err == io.EOF {
			break
		}
	}
}
           

接着是文件的运行和摆放,放在对应的文件夹下,cmd用命令直接运行文件即可,data文件时程序生成的:

GO语言简单存储数据-随笔1

文件执行后,这个程序也很简单,就是本地创建一个txt文件用来存储数据。

执行后的文本内数据效果:

GO语言简单存储数据-随笔1

运行执行:

GO语言简单存储数据-随笔1

感觉没什么太多要说的,不过刚接触go的话,可以和我一样看看这个博主的一片内容,链接:Go读取文件