我遇到了这个问题,我已经搜索了谷歌的深度,但仍然找不到答案。经过几天的苦苦挣扎之后,我发现了导致此错误的原因。
KeyStore.load(InputStream is, String pass);
此方法使用一个InputStream,如果此类InputStream出现任何问题,则会引发此异常,这是我遇到的一些问题:
- InputStream指向错误/空白/刚创建的文件
- InputStream已打开或其他正在占用资源
- InputStream 已被使用和读取 ,因此InputStream的下一个字节的位置是它的结尾
最后一个是对我的问题负责。该代码是根据证书创建一个InputStream,然后继续在两个KeyStore.load()调用中使用它,第一个成功,第二个总是让我遇到此错误。



