eclipseを使ってAndroidアプリを作っています。NanoHTTPD.javaを使ってhttpアクセスがあると、バイナリデータを応答するようにしたいと思っています。
assetsフォルダには"abc.bin"ファイル(バイナリデータ)があります。このファイルを応答したいのです。

private class MyHTTPD extends NanoHTTPD {
    public MyHTTPD() throws IOException {
        super(PORT, null);
    }
    @Override
    public Response serve(String uri, String method, Properties header,
            Properties parms, Properties files) {
        InputStream is = null;
        BufferedReader br = null;
        String key = "";

        try {
            try {
                is = getAssets().open("abc.bin");
                br = new BufferedReader(new InputStreamReader(is));

                String str;
                while ((str = br.readLine()) != null) {
                    key += str;
                }
            } finally {
                if (is != null)
                    is.close();
                if (br != null)
                    br.close();
            }
        } catch (Exception e) {
            Log.d("test", "abc.binが読み込めません。");
        }
        return new NanoHTTPD.Response(HTTP_OK, MIME_DEFAULT_BINARY, key);
}
}

しかし、バイナリはそのまま配信されず変換されているようです。
Stringの変数にしているからでしょうか。またバイナリをhttp応答するにはどうしたらいいのでしょうか。

よろしくお願いします。