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("未找到该单词的翻译")
}
}