登录
首页 >  Golang >  Go问答

写入文件失败

来源:stackoverflow

时间:2024-03-14 09:09:36 496浏览 收藏

大家好,今天本人给大家带来文章《写入文件失败》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我尝试用 go 编写 onetimepad,但无法写入文件: 这些文件是bin文件(编译好的go代码) 我的代码:

package main
import ("fmt"
       "io/ioutil"
        "math/rand")

func rndByte(l int)[]byte{


    token := make([]byte, l)
    rand.Read(token)
    return token
}

func writeByteFile(filename string,inp []byte ){

    err := ioutil.WriteFile(filename, inp, 0644)
    if err != nil {
        fmt.Println(err)
    }
}

func readFile(filename string) []byte {
        data, err := ioutil.ReadFile(filename)
        if err != nil {
                fmt.Println("File reading error", err)

        }

        return data
}



func main(){
    x := readFile("xor")
  //  y:= len(x)
    z := rndByte(489)

    var res [489]byte
    for i:=0; i != 489; i++{
        res[i] = x[i] ^ z[i]
    } 
    writeByteFile("xorKey", z)
    writeByteFile("xorENC", res)
}


我的错误:

# 命令行参数 ./xorbyte.go:47:19:无法在 writebytefile 的参数中使用 res(类型 [489]byte)作为类型 []byte


解决方案


[489]byte[]byte 是不同的类型。

[489]byte 是一个数组

[]byte 是一个切片

尝试将数组转换为切片:

writeByteFile("xorENC", res[:])

结账https://blog.golang.org/go-slices-usage-and-internals

理论要掌握,实操不能落!以上关于《写入文件失败》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>