C#或Java中的Base64解码
我有一个带有以下标头的Base64编码的对象:
application/x-xfdl;content-encoding="asc-gzip"
解码对象的最佳方法是什么?我需要去除第一行吗?另外,如果将其转换为字节数组(byte []),如何解压缩它?
谢谢!
我想我起初很miss。通过说标题是
application/x-xfdl;content-encoding="asc-gzip"
我的意思是这是文件的第一行。因此,为了使用Java或C#库解码文件,是否需要删除这一行?
如果是这样,剥离第一行的最简单方法是什么?
回答:
我能够使用以下代码将.xfdl文档转换为Java DOM文档。
我使用iHarder的
Base64实用程序进行Base64解码。
private static final String FILE_HEADER_BLOCK = "application/vnd.xfdl;content-encoding=\"base64-gzip\"";
public static Document OpenXFDL(String inputFile)
throws IOException,
ParserConfigurationException,
SAXException
{
try{
//create file object
File f = new File(inputFile);
if(!f.exists()) {
throw new IOException("Specified File could not be found!");
}
//open file stream from file
FileInputStream fis = new FileInputStream(inputFile);
//Skip past the MIME header
fis.skip(FILE_HEADER_BLOCK.length());
//Decompress from base 64
Base64.InputStream bis = new Base64.InputStream(fis,
Base64.DECODE);
//UnZIP the resulting stream
GZIPInputStream gis = new GZIPInputStream(bis);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(gis);
gis.close();
bis.close();
fis.close();
return doc;
}
catch (ParserConfigurationException pce) {
throw new ParserConfigurationException("Error parsing XFDL from file.");
}
catch (SAXException saxe) {
throw new SAXException("Error parsing XFDL into XML Document.");
}
}
仍在成功修改和重新编码文档方面进行工作。
希望这可以帮助。
以上是 C#或Java中的Base64解码 的全部内容, 来源链接: utcz.com/qa/400006.html