GO拷贝和读取英文TXT字典案例
拷贝图像文件
package main import ( "os" "fmt" "io" ) func main() { //读取文件 fp1, err1 := os.Open("D:/0824基础班/01_Go语言基础第07天(指针)/03视频/03结构体和函数.avi") //写入文件 fp2, err2 := os.Create("D:/test.avi") if err1 != nil || err2 != nil { fmt.Println("操作文件失败") return } //关闭文件 defer fp1.Close() defer fp2.Close() //拷贝文件 //通过read块进行文件读取 //通过write进行写入 buf := make([]byte, 1024*1024*10) //1KB 1MB 1KB-16MB for { //将读取的字符写入到新文件中 n, err := fp1.Read(buf) if err == io.EOF { break } fp2.Write(buf[:n]) } }
读取英文txt字典
package main import ( "os" "fmt" "bufio" "io" ) func main() { fp, err := os.Open("D:/dict.txt") if err != nil { fmt.Println("文件打开失败") return } defer fp.Close() //创建缓冲区 r := bufio.NewReader(fp) dict := make(map[string]string) for { //读取两行内容 单词和翻译 word, _ := r.ReadBytes('\n') trans, err1 := r.ReadBytes('\n') //将单词和翻译做类型转换 格式化 放在map中 //#abandoner\r\n //abandoner //Trans:n. 遗弃者;委付者\r\n //n. 遗弃者;委付者 dict[string(word[1:len(word)-2])] = string(trans[6 : len(trans)-2]) //到文件结尾 循环结束 if err1 == io.EOF { break } } //fmt.Println(dict) //单词查找 word := "" fmt.Println("请输入您要查找的单词") fmt.Scan(&word) //fmt.Println(dict[word]) value, ok := dict[word] if ok { fmt.Println(value) } else { fmt.Println("未找到该单词的翻译") } }