gpt4 book ai didi

java - 当我尝试在 PrintWriter 上写入时,为什么会抛出异常?

转载 作者:行者123 更新时间:2023-12-01 15:52:41 24 4
gpt4 key购买 nike

我有一个简单的 ChatClient,它将数据发送到服务器。为了让聊天客户端发送数据,我创建一个 Socket,为 socket.getOutputStream() 创建一个 PrintWriter,然后执行 writer.println("")。由于某种原因,我得到了一个巨大的异常。我查看了与我类似的异常,很多人都说更新java。但我的 Mac 上有最新版本。是因为我有Leopard,还是我的程序粗制滥造?请看一下。

private void setUpNetworking() {

try {
**sock = new Socket("127.0.0.1", 65534);**
InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(streamReader);

**writer = new PrintWriter(sock.getOutputStream());**
System.out.println("made connection... everything here works");

}
catch (IOException ex) {
ex.printStackTrace();
System.out.println("setup fail, but i didn't get this");

}
}

public class SendButtonListener implements ActionListener{
public void actionPerformed (ActionEvent ev){
try {
**writer.println(entertext.getText());**
**writer.flush();**
System.out.println("PROBLEM IS RIGHT HERE!!!");

}
catch (Exception ex) {
ex.printStackTrace();
System.out.println("i get a exception. HELP");

}

这是我的异常(exception):

java.lang.NullPointerException
at SimpleChatClient$SendButtonListener.actionPerformed(SimpleChatClient.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:246)
at java.awt.Component.processMouseEvent(Component.java:5617)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3129)
at java.awt.Component.processEvent(Component.java:5382)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:4083)
at java.awt.Container.dispatchEventImpl(Container.java:2068)
at java.awt.Component.dispatchEvent(Component.java:3918)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
at java.awt.Container.dispatchEventImpl(Container.java:2054)
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3918)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:501)
at java.awt.EventQueue.access$000(EventQueue.java:80)
at java.awt.EventQueue$1.run(EventQueue.java:462)
at java.awt.EventQueue$1.run(EventQueue.java:461)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:84)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:95)
at java.awt.EventQueue$2.run(EventQueue.java:476)
at java.awt.EventQueue$2.run(EventQueue.java:475)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:84)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:473)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
**at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)**

我不知道这意味着什么。请帮忙。

最佳答案

从堆栈跟踪和注释来看,听起来就像您调用时

writer.println(entertext.getText());

SendButtonListeneractionPerformed 方法中,writer enterText 为 null。

哪个为空,代码中不清楚它是如何得到的,但您应该能够通过调试器或日志记录来弄清楚它。

关于java - 当我尝试在 PrintWriter 上写入时,为什么会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com