golang 笔记

  • 快速读取文件
fi, err := os.Open(path)
if err != nil {
	panic(err)
}
defer fi.Close()
fd, err := ioutil.ReadAll(fi)  //[]byte
  • os 包的用法
  1. os.Getwd() 当前文件路径的字符串和一个err信息
  2. os.Chdir() 将当前文件路径改变为目标路径(非真实改变)
  3. os.Getenv() 获取系统环境变量的值
  • import
  1. 使用 . 导入包内所有元素
  2. 使用 _ 只执行_init()
  3. 当A -> B -> C ,A不能通过 . 的形式,直接使用C的元素
  • 获取当前运行目录的绝对路径
func getCurrentDirectory() string {
	dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
	if err != nil {
		log.Fatal(err)
	}
	return strings.Replace(dir, "\\", "/", -1)
}
  • 获取文件内容
  1. 一次性获取所有
func getContent(path string) string {
	fi, err := os.Open(path)
	if err != nil {
		panic(err)
	}
	defer fi.Close()
	fd, err := ioutil.ReadAll(fi)
	return string(fd)
}
  1. 按行获取
// filename文件名 handle回调函数
func ReadLine(fileName string, handler func(string)) error {
	f, err := os.Open(fileName)
	if err != nil {
		return err
	}
	buf := bufio.NewReader(f)
	for {
		line, err := buf.ReadString('\n')
		line = strings.TrimSpace(line)
		handler(line)
		if err != nil {
			if err == io.EOF {
				return nil
			}
			return err
		}
	}
	return nil
}
  • 写入到文件
f, err := os.OpenFile(cd + "/example/"+cts+".go", os.O_WRONLY | os.O_CREATE , 0600)
defer f.Close()
if err != nil{
	log.Println(err)
}else {
	_,err=f.Write([]byte("要写入的文本内容\nsdfjklsdf"))
}
  • 正则表达式
exp := regexp.MustCompile(`\d+\.\d+`)
result := exp1.FindAllStringSubmatch("text sld sld !", -1)

你可能感兴趣的:(Golang)