作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在尝试通过 ObjectOutputStream
接收二维/String
数组时遇到问题。我发送数组的代码是:
String [][] sendable = new String [n][5];
ObjectOutputStream os = new ObjectOutputStream(socket.getOutputStream());
os.writeObject(sendable);
假设我的数组已用所有值初始化,我如何将接收到的数据解压缩回二维数组?我的第一个方法是这个,但它一直导致问题,因为我对 Java 和套接字编程还比较陌生。
ObjectInputStream ois =new ObjectInputStream(clientSocket.getInputStream());
String insa[][] = null;
try{
insa= (String[][]) ois.readObject();
} catch (ClassNotFoundException ex){
ex.printStackTrace();
}
System.out.println(insa[0][1]);
如何检索作为对象发送的二维数组?
最佳答案
您需要在两端构造 ObjectInputStream 之前构造 ObjectOutputStream。否则,对等点可能会在读取对象流 header 时出现死锁。
您需要在套接字的生命周期内构造一次流,而不是每次发送或接收一次。
关于java - 反序列化通过 ObjectOutpoutStream 发送的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402114/
我在尝试通过 ObjectOutputStream 接收二维/String 数组时遇到问题。我发送数组的代码是: String [][] sendable = new String [n][5]; O
我是一名优秀的程序员,十分优秀!