2017-08-13 59 views
0

我有一个字符串,我需要一个只读文件指针(*os.File)。我不能使用strings.NewReader,因为该功能只接受*os.File。这可能吗?如何从字符串中创建* os.File的实例?

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

+0

这是第三方库的限制吗? –

回答

1

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

4

简短的答案是,你不能。出于这个原因,一般不建议在Go中编写采用os.File的函数,除非实际上正在执行手动系统调用或其他需要os.File的其他函数。相反,你的函数应该接受一个io.Reader或另一个接口(可能包含io.Seeker),这取决于需要什么。

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

有了更多的上下文,我可能会提供更好的建议。

相关问题