8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ScalaAdvent Calendar 2015

Day 4

JavaのコードをScalaのコードに書き換えてみよう

Last updated at Posted at 2015-12-03

はじめに

ファイルの内容が同じだったら同じ値を返し、ファイルの内容が違ったら違う値を返す関数が必要でした。

ぐぐってみると、意外と見つかりません。そういうときはJavaに聞けです。

ファイルのメッセージダイジェストを計算する。 - うなの日記を見つけました。Javaのコードです。

このコードをScalaのコードに書き換えられれば、欲しい関数が手に入るということです。素晴らしい!

varはご法度

Scalaではvarはご法度です。

「なんでvarはご法度なの?」とか、そういうデリカシーに欠けることは誰も口にしません。

けど、今回はvarのことも考えました。

ぐぐってみると、いつもの灰色のサイトに辿り着きます。

今回はこちらです。

[リンク先](Iterator.continually()を使おう - kmizuの日記)も要チェックです。

確認方法

md5やsha-256であれば、ターミナルを使って確認できます。

$ md5 tokyo.png
$ shasum -a 256 tokyo.png

念のため、確認用の画像も用意しました。

tokyo.png

準備万端

あとは実装して、確認するだけです。

あとがき

実装してみて辛かったことはターミナルで確認したハッシュ値と一致しなかったことです。

:arrow_down: を使うとターミナルのハッシュ値と一致しませんでしたが、

val bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("tokyo.png")))

:arrow_down: を使うとターミナルのハッシュ値と一致するようになりました。

val fileInputStream = new FileInputStream("tokyo.png")

しばらくしたら書き換えたScalaのコードを貼る予定です :thumbsup:

こちらに書き換えたScalaのコードを用意しました :coffee:

8
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?