我正在成功加载并使用Assets中的PKCS12文件Cert.pfx,如下所示:
String certLocation = "certificates/Cert.pfx";
InputStream isCert = null;
try {
isCert = getAssets().open(certLocation);
} catch (Exception e) {
Log.d(TAG, "Could not get Assets");
}
// Work with the certificate
我现在正尝试这样做,但是从Android中的存储中读取。
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/PrintableRSA");
File cert = new File(dir,"Cert.pfx");
InputStream isCert= null;
try {
isCert = new BufferedInputStream(new FileInputStream(cert));
isCert.close();
Log.d(TAG,"Sucsess!");
} catch (Exception e) {
Log.d(TAG, "Could not load the file");
}
// Same work with the certificate
文件加载顺利,但当我进一步使用 isCert InputStream,从存储加载时,它不起作用。我怀疑这些文件并不相同。
我也试过InputStream isCert = FileInputStream(cert);
失败了。
如何解决此问题?
答案 0 :(得分:1)
在您标记为“与证书相同的工作”时,您显然无法使用InputStream,因为此时您已经在其上调用了close()
。
完成信息流后,将您的电话转移至close()
。