【JAVA网络通信问题】调用不同函数下的new PrintWriter()

问题描述

例:classA{PrintWriterout=null;privatevoidf(){Sockets=newSocket(ip,port);out=newPrintWriter(s.getOutputStream(),true);}publicvoids(Stringstr){out.println(str);}}【问题】函数s中调用out会有空指针异常,怎么解决?Exceptioninthread"AWT-EventQueue-0"java.lang.NullPointerExceptionatnetwork.Connect.sendMsg(Connect.java:101)//改行是s方法下的out.println(str;)atFram.Login$1.mouseClicked(Login.java:43)//该行是调用s方法atjava.awt.AWTEventMulticaster.mouseClicked(UnknownSource)atjava.awt.Component.processMouseEvent(UnknownSource)atjavax.swing.JComponent.processMouseEvent(UnknownSource)atjava.awt.Component.processEvent(UnknownSource)atjava.awt.Container.processEvent(UnknownSource)atjava.awt.Component.dispatchEventImpl(UnknownSource)atjava.awt.Container.dispatchEventImpl(UnknownSource)atjava.awt.Component.dispatchEvent(UnknownSource)atjava.awt.LightweightDispatcher.retargetMouseEvent(UnknownSource)atjava.awt.LightweightDispatcher.processMouseEvent(UnknownSource)atjava.awt.LightweightDispatcher.dispatchEvent(UnknownSource)atjava.awt.Container.dispatchEventImpl(UnknownSource)atjava.awt.Window.dispatchEventImpl(UnknownSource)atjava.awt.Component.dispatchEvent(UnknownSource)atjava.awt.EventQueue.dispatchEventImpl(UnknownSource)atjava.awt.EventQueue.access$200(UnknownSource)atjava.awt.EventQueue$3.run(UnknownSource)atjava.awt.EventQueue$3.run(UnknownSource)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(UnknownSource)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(UnknownSource)atjava.awt.EventQueue$4.run(UnknownSource)atjava.awt.EventQueue$4.run(UnknownSource)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(UnknownSource)atjava.awt.EventQueue.dispatchEvent(UnknownSource)atjava.awt.EventDispatchThread.pumpOneEventForFilters(UnknownSource)atjava.awt.EventDispatchThread.pumpEventsForFilter(UnknownSource)atjava.awt.EventDispatchThread.pumpEventsForHierarchy(UnknownSource)atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)atjava.awt.EventDispatchThread.run(UnknownSource)注解:使用时,外部类调用方法s,通过socket向服务器发送数据

解决方案

解决方案二:

解决方案三:
你要保证out已经被初始化童鞋
解决方案四:
代码中,没看到out未赋值,应该指向了一个null。。。。。。当然报空指针异常了

时间: 2024-10-30 12:14:48

【JAVA网络通信问题】调用不同函数下的new PrintWriter()的相关文章

在Java程序中调用C函数--打印"HelloWorld"

源地址:http://java.sun.com/docs/books/jni/html/start.html#26346 本文是将书中的第二章单独抽出来,红色部分为译者注. 1.概述 这个打印的过程是用JDK或Java 2 SDK写一个简单的Java程序,程序会调用一个C函数打印"HelloWorld".这个过程将包括以下步骤: 创建一个Java类(HelloWorld.java),以及定义一个native方法. 使用javac去编译这个HelloWorld源文件,生成HelloWor

java虚拟机如何调用系统函数中的重载方法

问题描述 本人近来无事,研究下java虚拟机,java虚拟机如何调用同一类中的重载方法

java中panel实现线程接口以后,要调用repaint函数时,不进run函数

问题描述 java中panel实现线程接口以后,要调用repaint函数时,不进run函数 具体情况是 mypanel类实现了线程接口,在run函数中定义了sleep(100)后调用repaint函数,做一个小坦克游戏,在repaint之前要判断是否击中坦克,击中后要显示三张图片来体现爆炸效果,可是经过调试发现,每次第一次击中的时候,都是直接好多次repaint,没有休眠,后来发现根本就没有进mypanel的run()方法,好像有另一个其他线程再调用paint.这是怎么回事?感谢大家了 pack

【IOS-COCOS2D-X 游戏开发之十三】详细讲解在XCODE中利用预编译并通过JNI调用ANDROID的JAVA层代码(COCOS2DX里访问调用ANDROID函数)!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/725.html 很多看过之前Himi的[iOS-cocos2d-X 游戏开发之七]整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可! 博文的童鞋都在问我如何在Xcode中能调用Java的函数,比如在Android端需要加入广告.支付.等第三方平台或者

JAVA/JSP学习系列之十三(Applet调用&#106avascript函数)(译)

js|函数 下面的例子将说明在applet中去调用javascript函数 . 一.applet源代码(tmin_JS.java) // Importationsimport java.awt.Graphics ;import java.awt.Event ; // LiveConnect... for JavaScriptimport netscape.javascript.JSObject ; public class tmin_JS extends java.applet.Applet {

link环境下如何调用成员函数,如果这个类是abstrac的呢?

问题描述 link环境下如何调用成员函数,如果这个类是abstrac的呢? link环境下如何调用成员函数,如果这个类是abstrac的呢? 解决方案 那必须先继承一个抽象类,把抽象函数都实现了,然后去实例化这个类才行

十进制数-用vcmfc编写一个函数 在发送按钮事件下调用这个函数 具体见正文

问题描述 用vcmfc编写一个函数 在发送按钮事件下调用这个函数 具体见正文 该函数需将BYTE编辑框变量十进制数转化为16进制数,在按钮事件下调用该函数 进行转化.我是新手 求指导 刚接触vc思维上有点转不过来 解决方案 大概的思路char * input= ""00FF0123D5..."";char* out2=new char[strlen(input/2];int count=0;for(char *s=input;strlen(s)>0;s+=2)

linux c+ stat+-为什么在ubuntu下调用stat函数,执行路径不同,结果也会不同?

问题描述 为什么在ubuntu下调用stat函数,执行路径不同,结果也会不同? 在ubuntu下编写判断一个文件是否目录得程序,调用了sys/stat.h头文件中得stat函数,生成可执行文件后,在不同路径下执行结果是不一样得,烦请各位大神帮忙看一下是什么情况,多谢多谢(没分额). 说明: 在我得电脑上,程序存放得绝对路径是/home/xiaoming/Desktop/linuxStudy/filesystem/,执行程序时,分别在/home/xiaoming/Desktop/linuxStud

java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因?

问题描述 java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因? /** * 获取书籍总点击量 * * @param bookid 书籍id * @return 书籍总点击量 * @throws Exception */ @Override public int getClickAllById(int bookid) throws Exception { ResultSet rs = null; DataParameter[] parameters = new DataParame