>>566
public byte[] readFile(File f) throws IOException {
  byte[] data = new byte[(int)f.length()];
new FileInputStream(f).read(data);
  return data;
}

ストリーム閉じてない。サイズ不明なファイルの全体をサイズ
チェックしないで全部読み出すので、たとえば4GBのファイルを
読むにはヒープが4GB以上の64bitVMが必要。
それにAPIドキュメントの記載を読んだ限りでは、上のコードでは
ファイル全体を読み出さない可能性がある(実際は全体を読んで
くれるみたいだ)