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

时间:2017-08-13 00:34:18

标签: go

我有一个字符串,我需要成为只读文件指针(*os.File)。我无法使用strings.NewReader,因为该函数只接受*os.File。这可能吗?

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

2 个答案:

答案 0 :(得分:4)

简短的回答是,你做不到。出于这个原因,通常不建议在Go中编写带有os.File的函数,除非你实际上是在进行手动系统调用或其它需要os.File的函数。相反,您的函数应该接受io.Reader或其他接口(可能包含io.Seeker),具体取决于所需的内容。

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

有了更多背景信息,我或许可以提供更好的推荐。

答案 1 :(得分:1)

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