写入字节数组时出现java.lang.NullPointerException

标签 java exception byte arrays

我正在java中尝试这段代码:

  try
  {
    String url = "http://url.com/file.ext";
    InputStream myInputStream = getClass().getResourceAsStream(url);
    ByteArrayOutputStream myByteArrayOutputStream = new ByteArrayOutputStream();
    byte[] arrayOfByte = new byte[1024];
    int i;
    while ((i = myInputStream.read(arrayOfByte)) != -1)
    {
      myByteArrayOutputStream.write(arrayOfByte, 0, i);
    }
  }
  catch (Exception e)
  {
      System.err.println(e);
      System.err.println(e.getMessage());
      System.err.println(e.getLocalizedMessage());
      System.err.println(e.getCause());
      System.err.println(Arrays.toString(e.getStackTrace()));
      e.printStackTrace();

  }

编译正常,但抛出异常,这是控制台输出:

java.lang.NullPointerException
null
null
null
[myclass.init(myclass.java:32), sun.applet.AppletPanel.run(Unknown Source), java.lang.Thread.run(Unknown Source)]
java.lang.NullPointerException
    at myclass.init(myclass.java:32) <- Line 32 is "while ((i = myInputStream....."
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

什么可能导致异常?

最佳答案

实际上再看一下,你的InputStream myInputStream = getClass().getResourceAsStream(url);没有意义,而是使用

Url url = new Url("http://url.com/file.ext");
UrlConnection urlCon = url.openConnection();
InputStream input = urlCon.getInputStream();

这应该正确抓取字节

关于写入字节数组时出现java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286732/

相关文章:

python - 改变字符串的最后一个字节

java - 如何在mysql查询中找到byte[]?

java - 如何限制jpa查询

java - 如何从soap web服务接收JSONObject作为响应而不是android中的字符串

c++ - 我应该在 C++ 中使用异常说明符吗?

c# - 异常的目的是什么?

c# - 更新 Autofac 后出现奇怪的异常

java - 为什么在 getter 中进行空检查会导致 Controller 中的值为空?

java - 线程因未捕获的异常而退出

c++ - 我能否确定从文件中读取的 32 字节二进制数据等于 256 位?