base64を使用してエンコードされたコンテンツを取得するために必要なPDFファイルがたくさんあります。私はストリームとしてファイルを取得し、これらのファイルをエンコードする多くの労働者に配布し、各ファイルの文字列base64を返すAkkaアプリケーションを持っています。それは作品ストリーム用のJavaバッファードベース64エンコーダ
org.apache.commons.codec.binary.Base64InputStream;
...
Base64InputStream b64IStream = null;
InputStreamReader reader = null;
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try {
b64IStream = new Base64InputStream(input, true);
reader = new InputStreamReader(b64IStream);
br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
} finally {
if (b64IStream != null) {
b64IStream.close();
}
if (reader != null) {
reader.close();
}
if (br != null) {
br.close();
}
}
が、私は、バッファを使用してファイルをエンコードし、このためのより高速な代替がある場合はできる最善の方法だろうかを知りたいと思います:私は、エンコーディングのための基本的なソリューションを得ました。
私のようないくつかの他のアプローチテスト:
- をsun.misc.BASE64Encoder
- Base64.encodeBase64
- javax.xml.bind.DatatypeConverter.printBase64
- com.google.guava.BaseEncoding.base64
高速ですが、ファイル全体が必要ですか?また、1つのPDFファイルをエンコードしている間、他のスレッドをブロックしたくありません。
すべての入力は本当に役に立ちます。ありがとうございました!
「バッファ付き」とはどういう意味ですか?入力とは何でしょうか。出力はどのようなものでしょうか?ストリーム?チャンネル?文字列? – RealSkeptic
入力はInputStream、出力はbase64文字列の内容です。バッファはBufferedReaderになります。 –