如何从字符串创建 *os.File 的实例?

问题描述 投票:0回答:3

我有一个字符串,我需要将其作为只读文件指针(

*os.File
)。我无法使用
strings.NewReader
,因为该函数只接受
*os.File
。这可能吗?

我意识到我可以将字符串直接写入文件,然后再次打开它。但我想避免这一步。

go
3个回答
4
投票

简短的回答是你不能。因此,通常不建议在 Go 中编写采用 os.File 的函数,除非您实际上正在执行手动系统调用或其他需要 os.File 的操作。相反,您的函数应该根据需要接受 io.Reader 或另一个接口(可能包含 io.Seeker)。

如果您可以修改需要 os.File 的地方,那是您最好的选择。如果你不能并且它真的只需要一个阅读器,你可以使用 os.Pipe

有了更多背景,我也许可以给出更好的推荐。


1
投票

您无法从字符串创建

*os.File
。如果您无法使用
io.Reader
,最好的办法是将字符串写入临时文件,然后使用
os.Open
获取
*os.File


0
投票

您可以使用

[os.NewFile(0, "my-file.txt")][1]
这会返回
*os.File

© www.soinside.com 2019 - 2024. All rights reserved.