FileInputstream + NullPointerException, пока файл присутствует и доступен для чтения
Вероятно, это простая проблема, с одним sentecne-решением ^^: Как.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 "хорошо" и нет "о нет!", Проблема в Inputstream, но почему ^^? если я попытаюсь читать из потока с while((is.read(byte[] somevar))!=-1)
это на самом деле читает.
РЕДАКТИРОВАТЬ:
Я идиот, забыл добавить keyStore.getinstance(), не бери в голову, я устал, спасибо gkuzmin^^
2 ответа
Решение
Попробуйте следующим образом:
keyStore = keyStore.getinstance();
if((keyStore != null) && (kspath != null)) {
File ksFile = new File(kspath);
FileInputStream is = new FileInputStream(ksFile);
keyStore.load(is, kspw.toCharArray());
}
Но без определения объекта keystore
переменная, трудно понять, если хранилище ключей равно нулю или другой переменной.
Держать нас в курсе.
Эй, вы должны указать путь к файлу в качестве параметра для FileInputStream, а не имя файла, поэтому должно быть так
is = new FileInputStream(ksFile.getPath());