账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问如何使用golang实现对两个文件的fulljoin?
    • 2020-01-01 00:00
    • 10
    43
    0

    对这个问题,我举个栗子如下:
    文件 1 和文件 2 均含有客户 ID、客户年龄以及客户地址,要找出以下 3 种数据:
    1、客户ID在文件 1、文件 2 都存在,但是地址或年龄至少有一个属性不同(变化数据)
    2、客户ID在文件 1 中存在,但是文件 2 中不存在(新增数据)
    3、客户ID在文件 2 中存在,但是文件 1 中不存在(删除数据)

    大概意思就是这样。这个问题实际上用数据库的话很好解决,但是碍于环境限制,无法使用数据库,需要在外部直接对文件进行处理,目前小弟所想到的方法只有遍历对比,但是效率上很难保证。由于资源有限,所以把其中一个文件读入map,遍历另外文件查找KEY再对比的方法也不太实际(ㄒoㄒ)
    请问大家有没有什么高效率低资源占用的方法思路呢?非常感谢大家~

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 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函数将这两个字符串连接在一起。

      注意,这个示例假设两个文件都是文本文件。如果你的文件包含其他类型的数据,你可能需要使用不同的方法来读取和处理它们。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部