Java-кодер Base64 с буферизацией для потоковJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java-кодер Base64 с буферизацией для потоков

Сообщение Anonymous »

У меня есть много PDF-файлов, содержимое которых нужно закодировать с помощью base64. У меня есть приложение Akka, которое извлекает файлы в виде потока и распределяет их среди многих работников для кодирования этих файлов и возвращает строку base64 для каждого файла. У меня есть базовое решение для кодирования:

Код: Выделить всё

    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();
}
}
Это работает, но я хотел бы знать, как лучше всего закодировать файлы с использованием буфера и есть ли для этого более быстрая альтернатива.

Я протестировал некоторые другие подходы, такие как:
  • Base64.getEncoder
  • sun.misc.BASE64Encoder
  • Base64.encodeBase64
  • javax.xml.bind.DatatypeConverter.printBase64
  • com.google.guava.BaseEncoding.base64
Они быстрее, но им нужен весь файл, верно? Кроме того, я не хочу блокировать другие потоки при кодировании одного PDF-файла.

Любой ввод действительно полезен. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/390 ... or-streams
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»