0

可能是一个简单的问题,有一个单句解决方案^^:.load() 如何给我一个 NullPointerException?

    File ksFile=new File(kspath);
    Log.d("kspath", kspath);
    FileInputStream is=null;
    is = new FileInputStream(ksFile/*kspath*/);
    if(is==null)
        Log.d("debug", "Oh no!");

    if(ksFile.isFile())
        Log.d("debug", "ok");
    if(ksFile.canRead())
        Log.d("debug", "ok");

    if("".toCharArray()==null)
        Log.d("debug", "Oh no!");

    keyStore.load(is, kspw.toCharArray());

如您所见,添加了荒谬的检查,我得到 2 个“ok”和没有“oh no!”的问题是 Inputstream,但为什么^^?如果我尝试从 Stream 中 while((is.read(byte[] somevar))!=-1)读取它实际上会读取。

编辑:

我是个白痴,忘了加上keyStore.getinstance(),没关系,我累了,感谢gkuzmin^^

4

2 回答 2

0

以这种方式尝试:

    keyStore = keyStore.getinstance();

    if((keyStore != null) && (kspath != null)) {
       File ksFile = new File(kspath);

       FileInputStream is = new FileInputStream(ksFile);

       keyStore.load(is, kspw.toCharArray());
    }

但是如果没有变量的对象定义keystore,很难理解 keystore 是 null 还是其他变量。

随时通知我们。

于 2014-01-28T11:50:22.083 回答
-3

嘿,您必须将文件路径指定为 FileInputStream 的参数而不是文件名,所以它应该是这样的

    is = new FileInputStream(ksFile.getPath());
于 2012-08-21T08:10:19.433 回答