什么可以在java中替代使用readObject方法?

时间:2014-11-01 23:20:40

标签: java chat inputstream server

我正在尝试构建一个简单的即时消息程序。现在我正在为serevr类编写将在服务器端运行的内容。我目前正在处理的方法是whileChatting。 此方法应在聊天窗口中显示字符串消息,直到用户点击 END 。 现在,为了在窗口中读取输入对象,我正在使用这行代码:

  message=(String)input.readObject();

显示“找不到方法”的错误。为什么会这样?如果java库中不存在这样的方法那么可以替代使用什么?我将粘贴whileChatting方法的代码:[PLZ问我是否需要查看全班的代码]

      private void whileChatting(){
   String message="You are now connected";
   sendMessage(message);
   ableToType(true);
   do{
       try{
           message=(String)input.readObject();
           showMessage("\n"+message);

       }catch(ClassNotFoundException classNotFoundException){
           showMessage("\n the input cean't be read");
       }

   }while(!message.equals("CLIENT-END"));

  }

1 个答案:

答案 0 :(得分:0)

你说:

  

输入是InputStream。我已经像这样分配了它:private InputStream input;

然后,您可以检查API以查看InputStream可用的方法,并且您将看到readObject()不存在。请注意,您应该习惯于这样做,因为Java API将为您提供许多您需要知道的内容,以允许您使用核心Java中可用的类。同样,readObject()不是InputStream的方法,而是ObjectInputStream的方法。现在一个可能的解决方案是将您的InputStream包装到ObjectInputStream中,这样做,这将允许您使用readObject()方法,但我建议你不要这样做,你不这样做甚至打扰readObject()或任何类似的方法。相反,为什么不使用InputStream创建一个Scanner对象,并通过其nextLine()方法直接从Scanner对象获取字符串。