在调试一个SWT的SOCKET通信程序时提示了标题所示的错误.
查看了一下API:
public void write(byte[]b,
intoff,
intlen)
throws IOException
-
将指定字节数组中从偏移量
off开始的len个字节写入此输出流。write(b, off, len)的常规协定是:将数组b中的某些字节按顺序写入输出流;元素b[off]是此操作写入的第一个字节,b[off+len-1]是此操作写入的最后一个字节。OutputStream的write方法对每个要写出的字节调用一个参数的 write 方法。建议子类重写此方法并提供更有效的实现。如果
b为null,则抛出NullPointerException。
但是发现输出的字节数组不是null.于是继续上网找,终于发现了问题:
我的部分代码:
OutputStream out = null;
//问题
String str = "输出文本";
byte buff[] = str.getBytes();
out.wirte(buff);
其中注释的地方应该填上
out = socket.getOutputStream();
否则会造成out = null引起的NullPointException。
本文介绍了一位开发者在调试SWT的SOCKET通信程序时遇到的NullPointerException问题及其解决过程。错误源于尝试写入null的OutputStream,正确的做法是在写入前确保获取到有效的socket输出流。
788

被折叠的 条评论
为什么被折叠?



