文件存在且可读时,FileInputstream + NullPointerException

时间:2012-08-21 08:04:51

标签: java android nullpointerexception inputstream

可能是一个简单的问题,使用one-sentecne-Solution ^^:.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”s而不是“哦不!” 问题是输入流,但为什么^^? 如果我尝试从流阅读 它实际上是while((is.read(byte[] somevar))!=-1)

编辑:

我是个白痴,忘记添加keyStore.getinstance(),没关系,我很累,多亏了gkuzmin ^^

2 个答案:

答案 0 :(得分: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或其他变量,则很难理解。

让我们发布。

答案 1 :(得分:-3)

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

    is = new FileInputStream(ksFile.getPath());