2012-10-12 41 views
2

最近我正在使用多线程概念制作服务器 - 客户端程序。出于某种原因,我必须从客户端发送一串字符串到服务器。我正在使用ObjectOutputStreamwriteObject()方法发送该字符串数组。例如,我有一个名为String data[] = new String[3]的数组,然后通过socketwriteobject(data)发送它。通过套接字接收和打印字符串数组对象

问题是,我如何接收服务器上的这个字符串数组?是ObjectInputStream和这种方法readObject()可以帮助我吗?我只是想迭代这个对象,并把它变成服务器端的新字符串数组。例如String newData[] = new String[3],然后将data[0]中的字符串转换为newData[0],直到data[2]转换为newData[2]

回答

3

我相信当你使用readObject()来读你的对象时,它应该返回你自己的String []。

  String[] myObjects = (String[])inObjectStream.readObject(); 

这不工作?

+0

是的,它的工作!谢谢。但是我有一个问题,为什么我们必须在这段代码中放一个'try-catch'? – irvana

+0

由于'ObjectInputStream.readObject()'抛出了一些例外可能的失败,例如'ClassNotFoundException' - 找不到序列化对象的类。 'InvalidClassException' - 序列化使用的类有问题。 'StreamCorruptedException' - 流中的控制信息不一致。 'OptionalDataException' - 在流中找到原始数据而不是对象。 'IOException' - 任何常见的输入/输出相关异常。 –

+0

如果出现上述任何情况,即无法读取文件,则会抛出'IOException',您需要在catch块中处理该异常。 '如果您不想添加try/cath,则在方法签名末尾添加上面提到的异常作为'throws IOException,OptionalDataException,InvalidClassException,ClassNotFoundException,StreamCorruptedException'。请让我知道,如果你需要任何帮助。 –