【发布时间】:2015-01-09 22:01:02
【问题描述】:
奇怪的问题,我验证它正在读取同一个文件。
这不起作用:
keystore = KeyStore.getInstance("PKCS12");
InputStream inputStream = ClassLoader.getSystemResourceAsStream("keystores/active.pfx");
keystore.load(inputStream, "the_password".toCharArray());
然而,这确实有效:
keystore = KeyStore.getInstance("PKCS12");
InputStream inputStream = new FileInputStream(new File("src/main/resources/keystores/active.pfx"));
keystore.load(inputStream, "the_password".toCharArray());
我收到以下错误:
DER 长度超过 4 个字节:111
就是输入流的变化,我不知道有什么区别。我对文件进行了三次检查,以确保它使用的是同一个文件。为什么 Java 以不同的方式处理这些流?如果我弄清楚了,我可能会弄清楚如何解决这个问题。
【问题讨论】:
-
为什么 Java 对这些流的处理方式不同? 你为什么认为它们应该做同样的事情?
-
我的建议,阅读 API。假设您知道它们的作用,您正在使用类。如果您阅读 API,您会发现问题一点也不奇怪。
-
类路径中的文件已损坏,请检查其大小stackoverflow.com/questions/19500458/…
标签: java inputstream keystore fileinputstream