print(Digest::MD5.file('hoge.txt').hexdigest()) とすればファイル全体をメモリに読み込まないで済むのですが、バイナリーモードで開いてるんですね。 バイナリーモードで分割読み込みするならば、、 md5 = Digest::MD5.new() File.open('hoge.txt', 'rb'){|f| while buf = f.read(8192) md5.update(buf) end } print(md5.hexdigest()) 、こんな感じでしょうか。
![RubyでファイルのMD5を取得](https://cdn-ak-scissors.b.st-hatena.com/image/square/126e9c63960837b5815901e11e1f6c1303c17f2b/height=288;version=1;width=512/https%3A%2F%2Fblog.seesaa.jp%2Fimg%2Fogp_logo.png)