【问题标题】:FileInputstream + NullPointerException while File is present and readableFileInputstream + NullPointerException,而 File 存在且可读
【发布时间】:2012-08-21 08:04:50
【问题描述】:

可能是一个简单的问题,有一个单句解决方案^^:.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”和 no “oh no!” 问题是输入流,但为什么^^? 如果我尝试从 Stream 中读取 while((is.read(byte[] somevar))!=-1) 它实际上读取。

编辑:

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

【问题讨论】:

  • keyStore变量值null?
  • 谢谢你我是个白痴,忘记添加keyStore.getinstance()^^
  • 可能是您的 keyStore.load() 方法中的错误
  • 你应该发布你自己的答案

标签: java android nullpointerexception inputstream


【解决方案1】:

这样试试:

    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还是其他变量很难理解。

随时通知我们。

【讨论】:

    【解决方案2】:

    你必须指定文件路径作为 FileInputStream 的参数而不是文件名 所以应该是这样的

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多