私は読み取り専用のファイルポインタ(*os.File
)である必要がある文字列を持っています。関数は*os.File
しか受け付けないので、strings.NewReader
を使用することはできません。これは可能ですか?文字列から* os.Fileのインスタンスを作成するにはどうすればよいですか?
文字列を直接ファイルに書き込んでから、もう一度開くことができたと思います。しかし、私はこのステップを避けたいと思います。
私は読み取り専用のファイルポインタ(*os.File
)である必要がある文字列を持っています。関数は*os.File
しか受け付けないので、strings.NewReader
を使用することはできません。これは可能ですか?文字列から* os.Fileのインスタンスを作成するにはどうすればよいですか?
文字列を直接ファイルに書き込んでから、もう一度開くことができたと思います。しかし、私はこのステップを避けたいと思います。
文字列から*os.File
を作成することはできません。 io.Reader
を使用できない場合は、文字列をテンポラリファイルに書き込んでから、os.Open
を使用して*os.File
を取得することをおすすめします。
短い答えはできないということです。このため、実際に手動のシステムコールやos.Fileが必要な他のものを実行していない限り、os.Fileを取る関数を書くためには、Goでは一般的に推奨されていません。代わりに、関数は必要なものに応じてio.Readerまたは別のインタフェース(おそらくio.Seekerを含む)を受け入れる必要があります。
os.Fileが必要な場所を変更できる場合は、それが最善の策です。あなたができない場合、それは本当に読者だけが必要な場合は、os.Pipeを使用することができます。
より多くの文脈で、私はより良い推奨を与えることができるかもしれません。
これはサードパーティライブラリの制限ですか? –