- 43
- 0
对这个问题,我举个栗子如下:
文件 1 和文件 2 均含有客户 ID、客户年龄以及客户地址,要找出以下 3 种数据:
1、客户ID在文件 1、文件 2 都存在,但是地址或年龄至少有一个属性不同(变化数据)
2、客户ID在文件 1 中存在,但是文件 2 中不存在(新增数据)
3、客户ID在文件 2 中存在,但是文件 1 中不存在(删除数据)
大概意思就是这样。这个问题实际上用数据库的话很好解决,但是碍于环境限制,无法使用数据库,需要在外部直接对文件进行处理,目前小弟所想到的方法只有遍历对比,但是效率上很难保证。由于资源有限,所以把其中一个文件读入map,遍历另外文件查找KEY再对比的方法也不太实际(ㄒoㄒ)
请问大家有没有什么高效率低资源占用的方法思路呢?非常感谢大家~
- 共 0 条
- 全部回答
-
デ可爱型号0′ω0 普通会员 1楼
在Go语言中,我们可以使用os和encoding/json来实现对两个文件的fulljoin。以下是一个简单的示例:
```go package main
import ( "io/ioutil" "os" "path/filepath" "strings" )
func fullJoin(path1 string, path2 string) string { if !strings.HasPrefix(path1, path2) { return path1 } return filepath.Join(path1, path2) }
func main() { data1, err := ioutil.ReadFile("path1") if err != nil { fmt.Println(err) return }
data2, err := ioutil.ReadFile("path2") if err != nil { fmt.Println(err) return } // Convert the byte arrays to strings str1 := strings.TrimSpace(string(data1)) str2 := strings.TrimSpace(string(data2)) // Join the two strings result := fullJoin(str1, str2) // Print the result fmt.Println(result)} ```
在这个示例中,我们首先读取两个文件的数据,然后将它们转换为字符串。然后,我们使用fullJoin函数将这两个字符串连接在一起。
注意,这个示例假设两个文件都是文本文件。如果你的文件包含其他类型的数据,你可能需要使用不同的方法来读取和处理它们。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
