OkHttpの依存ライブラリのOkioでチェックサム算出
OkHttpを使おうとして気付いたので。
今更ながらAndroidでOkHttpを使ってみようかと思っていたところ、依存ライブラリでOkioというのがあることに気付いた。
You'll also need Okio, which OkHttp uses for fast I/O and resizable buffers.
Android Studioだと「build.gradle」に以下を追加するだけなのでそもそも依存関係なんて解決してくれるので知らんかったぞ。
dependencies {
compile 'com.squareup.okhttp:okhttp:2.3.0'
}
で、Okioというのはこれ。
OkHttpと同じくSquare製のI/O関連のライブラリだそうな。
ファイルのチェックサムを求める
ソースを見たらどうもチェックサムも出してくれるみたいなので試してみた。
元のファイル
$ md5sum osa.txt 1b9be0179cfcc6a531f1eeca04c9393d osa.txt $ sha256sum osa.txt 1c5843df296d3901770fd28404fbc0340f7ad170dfe5ad12f25b4d15fe92024b osa.txt
Okio使う
import okio.ByteString; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Main { public static void main(String[] args) { File file = new File("osa.txt"); try( FileInputStream input = new FileInputStream(file)) { ByteString byteString = ByteString.read(input, input.available()); String md5sum = byteString.md5().hex(); String sha256sum = byteString.sha256().hex(); System.out.println("MD5SUM:" + md5sum); System.out.println("SHA256SUM:" + sha256sum); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
実行結果はこちら
MD5SUM:1b9be0179cfcc6a531f1eeca04c9393d SHA256SUM:1c5843df296d3901770fd28404fbc0340f7ad170dfe5ad12f25b4d15fe92024b
ダウンロードしたファイルのチェックサム判定を自前で書くのもいいんだけど、OkHttp使う場合はお手軽にできそうじゃないのよ。
その他
簡単な利用イメージはこちらにもサンプルがある。
10 things you can do with Okio's ByteString
- OSSは便利だな
- 作者: 八木俊広
- 出版社/メーカー: 秀和システム
- 発売日: 2013/12/06
- メディア: 単行本
- この商品を含むブログ (3件) を見る