我有字符串数组对象。比方说
String[] names = new String[7];我还通过在我的客户端系统上使用ObjectOutputStream将这个对象存储到文件中,从而使该对象持久化。我正在使用ObjectInputStream读取存储的对象。说到这里好吧。现在我想通过套接字将这个对象发送到另一个系统。
该怎么做呢?请帮帮忙。谢谢。
发布于 2013-11-05 18:13:29
您应该创建Socket实例
get output stream并写入(例如,使用ObjectOutputStream)。
Socket echoSocket = new Socket(hostName, portNumber);
ObjectOutputStream out = new ObjectOutputStream(echoSocket.getOutputStream());
out.writeObject(names); 您可以在Oracle文档中找到一个示例:example。
另外,this answer应该会对您有所帮助
发布于 2013-11-05 18:14:52
字符串数组对象实现了Serializable接口,因此它可以作为字节流通过网络发送:
Socket socket = new Socket(host, port);
ObjectOutputStream outputStream = new ObjectOutputStream(
socket.getOutputStream());
String[] names = new String[1]; // Empty at the moment
outputStream.writeObject(names); 发布于 2013-11-05 18:14:11
回答你的问题:在Java Array中,String和string是可序列化的类型,因此字符串数组可以转换为string (!),通过网络发送,然后反序列化(转换回object)。请参阅:How to serialize object in java,但我建议将数据转换为xml、json或任何其他传输数据格式,然后将其作为字符串发送。这将为您省去很多麻烦。
走得更远-而不是发送非常低级别的数据(套接字、流等)我建议创建更高级别的服务,并通过http调用它。像restlet或Spring remoting这样的框架很容易设置。
https://stackoverflow.com/questions/19786202
复制相似问题