fix example

R=nweiz@google.com

Review URL: https://codereview.chromium.org//1822373003 .
diff --git a/example/hash.dart b/example/hash.dart
index 0f79007..825d132 100644
--- a/example/hash.dart
+++ b/example/hash.dart
@@ -2,31 +2,33 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:io' show exit, File;
-import 'package:crypto/crypto.dart' show MD5, SHA1, SHA256, CryptoUtils;
+import 'dart:async';
+import 'dart:io';
 
-const USAGE = 'Usage: dart hash.dart <md5|sha1|sha256> <input_filename>';
+import 'package:crypto/crypto.dart';
 
-main(List<String> args) async {
+final _usage = 'Usage: dart hash.dart <md5|sha1|sha256> <input_filename>';
+
+Future main(List<String> args) async {
   if (args == null || args.length != 2) {
-    print(USAGE);
+    print(_usage);
     exit(1);
   }
 
-  var hasher;
+  Hash hasher;
 
   switch (args[0]) {
     case 'md5':
-      hasher = new MD5();
+      hasher = md5;
       break;
     case 'sha1':
-      hasher = new SHA1();
+      hasher = sha1;
       break;
     case 'sha256':
-      hasher = new SHA256();
+      hasher = sha256;
       break;
     default:
-      print(USAGE);
+      print(_usage);
       exit(1);
   }
 
@@ -38,11 +40,7 @@
     exit(1);
   }
 
-  await for (var bytes in input.openRead()) {
-    hasher.add(bytes);
-  }
+  var value = await hasher.bind(input.openRead()).first;
 
-  var hex = CryptoUtils.bytesToHex(hasher.close());
-
-  print(hex);
+  print(value);
 }