有谁知道除了com.idataconnect.lib.ascii85codec java 项目之外的任何其他类似org.apache.commons.codec.binary.Base64
类的东西吗?
问问题
5079 次
2 回答
4
我发现这个项目似乎可以解决问题:http: //pdfbox.apache.org/downloads.html#recent
下面的类编码和解码。非常欢迎代码审查和建议:
import org.apache.pdfbox.io.ASCII85InputStream;
import org.apache.pdfbox.io.ASCII85OutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
public class Ascii85Coder {
public static byte[] decodeAscii85StringToBytes(String ascii85) {
ArrayList<Byte> list = new ArrayList<Byte>();
ByteArrayInputStream in_byte = null;
try {
in_byte = new ByteArrayInputStream(ascii85.getBytes("ascii"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ASCII85InputStream in_ascii = new ASCII85InputStream(in_byte);
try {
int r ;
while ((r = in_ascii.read()) != -1) {
list.add((byte) r);
}
} catch (IOException e) {
e.printStackTrace();
}
byte[] bytes = new byte[list.size()];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = list.get(i);
}
return bytes;
}
public static String encodeBytesToAscii85(byte[] bytes) {
ByteArrayOutputStream out_byte = new ByteArrayOutputStream();
ASCII85OutputStream out_ascii = new ASCII85OutputStream(out_byte);
try {
out_ascii.write(bytes);
out_ascii.flush();
} catch (IOException e) {
e.printStackTrace();
}
String res = "";
try {
res = out_byte.toString("ascii");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return res;
}
}
于 2011-10-21T13:55:40.287 回答
-1
java.net上有 Ascii85 实现。
于 2011-10-21T06:22:55.703 回答