0

我正在用 java 编写一个应用程序,它将一个对象发送到一个套接字。在连接的另一端,我有另一个需要接收对象并显示内容的应用程序......

我让我的应用程序使用扫描仪接收文本。

in = new Scanner(socket.getInputStream());
while (in.hasNext()
{
   system.out.println(in.next)
}

但是,当我尝试使用相同的方法发送对象时,代码是不可编译的。printNumber() 是我试图发送的对象中的一个杂项。

in = new Scanner(socket.getInputStream());
while (in.hasNext()
{
   system.out.println(in.printNumber())
}

我曾尝试通过互联网查找教程或其他内容来解释我应该做什么,但我实际上并不知道我真正在寻找什么。谁能指出我正确的方向?

干杯

4

2 回答 2

1

你如何序列化数据?

如果您使用 ObjectOutputStream,则需要 ObjectInputStream 来读取它。

如果您使用 XMLEncoder,则需要 XMLDecoder 才能读取它。

对于每个序列化器,都有一个适当的反序列化器,您必须使用匹配的反序列化器。

于 2013-01-03T19:53:52.413 回答
1

首先,您不是在发送的对象上调用方法,而是在Scanner. 不printNumber(),存在于Scanner类中。

其次,不要对序列化对象使用扫描仪,Scanner它是专为文本输入而设计的。改用ObjectInputStream

in = new ObjectInputStream(socket.getInputStream()); 
System.out.println(in.readObject());
于 2013-01-03T19:57:39.413 回答