Golangではio.Readerインタフェースを満たす構造体を結構よく使うのですが、ではこれを満たすためのReadメソッドって何ぞと思ったので、メモです。

広告

結論: 与えられたバイト配列を読み込んだバイトデータで満たす関数

見出しの通りです。形式としては、

n,err:= r.Read(byteArray)

というような形になります。rはio.Readerを満たす構造体のインスタンスとします。
nがrで読み込まれ、byteArrayに書き込まれたバイト数、errは何らかのエラーを表します。たとえばEOF(ファイルの終わり)にぶち当たればEOFを返します。

で、説明を読んでいただくとお察しかもしれませんが、このメソッドは素では非常に扱いづらいです。なので、結局のところ、io.Readerはbufio.Readerとかに変換したり、ioutilを使って楽に読み込めるようにするのがベターみたいです。

その他コメントなど

Javaでも確かReaderのReadって結構原始的なメソッドだった気がしますし、そういうもののようですが、根源が気になったので忘備録がてら書きました。

ちなみにさりげなくcsvパッケージのReaderはこのio.Readerは満たしていません。csvの読み込みという段階の処理ですから、特にそりゃReadメソッドとかいらないしなあ、とぼんやり考えたりしています。

広告

関連コンテンツと広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA