我正在研究我需要生成二进制编码(字节)文件的项目。事实是,我不想存储文件,只需要编码数据来验证一些测试数据。
这是我有zip file的示例代码
以上示例适用于zip
但我不限于使用zip
或任何文件类型。在这里我们需要存储文件才能读取,但我不希望以后存储和删除该文件。
我知道要求帮助并没有多少努力,但作为一个新手,我只会这样做。
谢谢。
更好的做法是不依赖于具体类型(例如os.File
),而是使用接口来描述您要使用该文件的功能。
例如。如果你有一个函数接受一个文件,因为它想从中读取,请使用io.Reader
代替:
func process(r io.Reader) error {
// ...
}
同样,如果要写入文件,请使用io.Writer
,或者如果要同时执行这两种操作,请使用io.ReadWriter
或io.ReadWriteCloser
。您可以将*os.File
值传递给这些函数,因为*os.File
实现了这些接口。
这样做的好处是您可以使用实现该接口的任何值来调用这些函数。如果要测试这些函数,可以传递一个实现bytes.Buffer
和io.Reader
的内存中io.Writer
,并且可以在运行时手动构造其内容,例如:
buf := &bytes.Buffer{}
buf.Write([]byte{1, 2, 3})
buf.WriteString("Hello")
这里buf
将包含字节1
,2
,3
和字符串"Hello"
。之后你可以通过需要读者或作者的buf
,例如:
process(buf)
查看类似/相关问题和示例: