Java 如何检查来自服务器的数据是序列化数组还是简单字符串?
我需要连载Java 如何检查来自服务器的数据是序列化数组还是简单字符串?,java,Java,我需要连载 ArrayList<String> arr=new ArrayList<String>(); 客户端从服务器接收字节 byte[] buf=new byte[1024*100]; //данные приходные int r=s.getInputStream().read(buf); 如何检查它是我的ArrayList,然后反序列化还是仅仅是一个字符串?您不必检查。您编写了一个序列化对象:它是一个序列化对
ArrayList<String> arr=new ArrayList<String>();
客户端从服务器接收字节
byte[] buf=new byte[1024*100];
//данные приходные
int r=s.getInputStream().read(buf);
如何检查它是我的ArrayList,然后反序列化还是仅仅是一个字符串?您不必检查。您编写了一个序列化对象:它是一个序列化对象。使用
ObjectInputStream.readObject()
阅读它
您可以使用instanceof
检查序列化对象的类型
你不需要那里的ByteArrayoutPuttStream。只需构造新的ObjectOutputStream(socket.getOutputStream())并直接执行
writeObject()
。这样做只会浪费时间、空间和金钱。你不必检查。您编写了一个序列化对象:它是一个序列化对象。使用ObjectInputStream.readObject()
阅读它
您可以使用instanceof
检查序列化对象的类型
你不需要那里的ByteArrayoutPuttStream。只需构造新的ObjectOutputStream(socket.getOutputStream())并直接执行
writeObject()
。这样做只会浪费时间、空间和金钱。我不仅仅发送序列化数组。我也会向客户端发送字符串-不同的消息。@Аааааааааааааааааааааааа。如果你不知道接下来会发生什么,就不要混用API。我不仅仅发送序列化数组。我也会向客户端发送字符串-不同的消息。@Аааааааааааааааааааааааа。如果你不知道接下来会发生什么,就不要混用API。
byte[] buf=new byte[1024*100];
//данные приходные
int r=s.getInputStream().read(buf);