【问题标题】:java null pointer exceptionjava空指针异常
【发布时间】:2009-12-02 08:57:09
【问题描述】:

我通过以下方法在while ((len = in.read(buf , 0 , buf.length)) >= 0) 获得java.lang.NullPointerException

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();
    }

我没有得到 coz。如果我得到解决方案,我将不胜感激。在此先感谢.......

【问题讨论】:

  • 如果你将'buf'设置为null...它将为null。

标签: java stream bytearray


【解决方案1】:

你设置

buf = null; 

在第一次迭代中,第二次 buf.length 抛出 NullPointerException。

【讨论】:

    【解决方案2】:

    因为您在循环的第一次迭代之后设置了buf = null;。它将在 while 循环的第二次运行时失败。

    【讨论】:

      【解决方案3】:

      我在这里看到两个可能的 NullPointer:

      1. buf=null;,在第二次迭代中肯定会导致 NullPointerException。
      2. 如果找不到src,getResourceAsStream 将返回null

      【讨论】:

        【解决方案4】:

        buf = null; 在您的 while 循环中导致问题,请尝试评论该行。

        【讨论】:

          【解决方案5】:

          您需要在循环中执行以下操作:

          buf = new byte[1012];
          

          或者您可以完全删除 buf = null

          【讨论】:

          • 删除 buf=null 就足够了
          猜你喜欢
          • 2011-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-28
          相关资源
          最近更新 更多