我必须从 ftp 服务器获取文件,文件格式是二进制asn
类型。我需要它们转换为文本文件,并解析相关数据。我正在使用jdk1.7。我也可以使用第三方 jar,但它应该是免费的。如果有人给我一个例子,那就更好了。
问问题
1004 次
1 回答
0
我想建议你使用: http: //www.bouncycastle.org/java.html
从 ftp 服务器获取后,快速检查使用org.bouncycastle.asn1.util.ASN1Dump
类:
ASN1InputStream stream = new ASN1InputStream(new ByteArrayInputStream(data));
ASN1Primitive object = stream.readObject();
System.out.println(ASN1Dump.dumpAsString(object));
这将打印文件的结构。
如果您知道文件的结构,则需要使用如下解析器:
ASN1InputStream stream = new ASN1InputStream(new ByteArrayInputStream(data));
DERApplicationSpecific application = (DERApplicationSpecific) stream.readObject();
ASN1Sequence sequence = (ASN1Sequence) application.getObject(BERTags.SEQUENCE);
Enumeration enum = sequence.getObjects();
while (enum.hasMoreElements()) {
ASN1Primitive object = (ASN1Primitive) secEnum.nextElement();
System.out.println(object);
}
顺便说一句,ASN1Primitive
是来自字节流的基本 ASN.1 对象。它有很多类型(http://www.borelly.net/cb/docs/javaBC-1.4.8/prov/org/bouncycastle/asn1/ASN1Primitive.html),您可以继承并获得正确的类型。
于 2013-10-16T09:43:54.947 回答