base64를 사용하여 인코딩 된 내용을 얻는 데 필요한 많은 PDF 파일이 있습니다. 파일을 스트림으로 가져 와서 많은 파일 작업자에게 배포하여 이러한 파일을 인코딩하고 각 파일에 base64 문자열을 반환하는 Akka 앱이 있습니다. 나는 인코딩을위한 기본적인 솔루션을 가지고 :스트림 용 Java 버퍼가있는 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을
- javax.xml.bind.DatatypeConverter.printBase64
- com.google.guava.BaseEncoding.base64
더 빠르지 만 전체 파일이 필요합니다. 맞습니까? 또한 1 PDF 파일을 인코딩하는 동안 다른 스레드를 차단하고 싶지 않습니다.
모든 입력이 정말 도움이됩니다. 고맙습니다!
"버퍼 사용"이란 무엇입니까? 무엇이 입력이 될 것이며 출력은 무엇을 기대합니까? 스트림? 채널? 문자열? – RealSkeptic
입력이 InputStream이면 출력은 base64 문자열 내용입니다. 버퍼는 BufferedReader가됩니다. –