我有一个字符串,我需要将其作为只读文件指针(
*os.File
)。我无法使用 strings.NewReader
,因为该函数只接受 *os.File
。这可能吗?
我意识到我可以将字符串直接写入文件,然后再次打开它。但我想避免这一步。
简短的回答是你不能。因此,通常不建议在 Go 中编写采用 os.File 的函数,除非您实际上正在执行手动系统调用或其他需要 os.File 的操作。相反,您的函数应该根据需要接受 io.Reader 或另一个接口(可能包含 io.Seeker)。
如果您可以修改需要 os.File 的地方,那是您最好的选择。如果你不能并且它真的只需要一个阅读器,你可以使用 os.Pipe。
有了更多背景,我也许可以给出更好的推荐。
您无法从字符串创建
*os.File
。如果您无法使用 io.Reader
,最好的办法是将字符串写入临时文件,然后使用 os.Open
获取 *os.File
。
您可以使用
[os.NewFile(0, "my-file.txt")][1]
这会返回 *os.File