исключение нулевого указателя Java - PullRequest
0 голосов
/ 02 декабря 2009

Я получаю java.lang.NullPointerException при while ((len = in.read(buf , 0 , buf.length)) >= 0) следующим способом:

public void copy(String  src, File dst) throws IOException {

  InputStream in = getClass().getResourceAsStream(src); 
        OutputStream out = new FileOutputStream(dst);

        byte[] buf = new byte[1012];
        int len;
        while ((len = in.read(buf , 0 , buf.length)) >= 0) {
            out.write(buf, 0, len);
            buf = null;
        }
        in.close();
        out.close();
    }

Я не получаю. Я буду благодарен, если получу решение. Заранее спасибо .......

Ответы [ 5 ]

10 голосов
/ 02 декабря 2009

Вы установили

buf = null; 

на первой итерации, на второй длине buf.length выдает исключение NullPointerException.

2 голосов
/ 02 декабря 2009

Я вижу два возможных NullPointer здесь:

  1. buf=null;, которое определенно вызывает исключение NullPointerException на второй итерации.
  2. getResourceAsStream вернет null, если src не было найдено.
2 голосов
/ 02 декабря 2009

Поскольку вы устанавливаете buf = null; после первой итерации цикла. Сбой при втором запуске цикла while.

1 голос
/ 02 декабря 2009

buf = null; внутри вашего цикла while вызывает проблему, попробуйте комментировать эту строку.

0 голосов
/ 02 декабря 2009

Вам нужно что-то вроде ниже внутри цикла:

buf = new byte[1012];

Или вы можете полностью удалить buf = null.

...