2
最近我正在使用多线程概念制作服务器 - 客户端程序。出于某种原因,我必须从客户端发送一串字符串到服务器。我正在使用ObjectOutputStream
和writeObject()
方法发送该字符串数组。例如,我有一个名为String data[] = new String[3]
的数组,然后通过socketwriteobject(data)
发送它。通过套接字接收和打印字符串数组对象
问题是,我如何接收服务器上的这个字符串数组?是ObjectInputStream
和这种方法readObject()
可以帮助我吗?我只是想迭代这个对象,并把它变成服务器端的新字符串数组。例如String newData[] = new String[3]
,然后将data[0]
中的字符串转换为newData[0]
,直到data[2]
转换为newData[2]
。
是的,它的工作!谢谢。但是我有一个问题,为什么我们必须在这段代码中放一个'try-catch'? – irvana
由于'ObjectInputStream.readObject()'抛出了一些例外可能的失败,例如'ClassNotFoundException' - 找不到序列化对象的类。 'InvalidClassException' - 序列化使用的类有问题。 'StreamCorruptedException' - 流中的控制信息不一致。 'OptionalDataException' - 在流中找到原始数据而不是对象。 'IOException' - 任何常见的输入/输出相关异常。 –
如果出现上述任何情况,即无法读取文件,则会抛出'IOException',您需要在catch块中处理该异常。 '如果您不想添加try/cath,则在方法签名末尾添加上面提到的异常作为'throws IOException,OptionalDataException,InvalidClassException,ClassNotFoundException,StreamCorruptedException'。请让我知道,如果你需要任何帮助。 –