सबसे अच्छा तरीका यह अपाचे Commons Lang से SerializationUtils
उपयोग करने के लिए है क्या करना है।
को क्रमानुसार करने के लिए:
byte[] data = SerializationUtils.serialize(yourObject);
deserialize करने के लिए:
YourObject yourObject = SerializationUtils.deserialize(data)
के रूप में उल्लेख किया है, यह जरूरी है कॉमन्स लैंग पुस्तकालय। यह Gradle का उपयोग कर आयात किया जा सकता:
compile 'org.apache.commons:commons-lang3:3.5'
Maven:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
Jar file
और अधिक तरीकों वैकल्पिक रूप से उल्लेख किया here
, पूरे संग्रह आयात किया जा सकता।
private byte[] convertToBytes(Object object) throws IOException {
try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos)) {
out.writeObject(object);
return bos.toByteArray();
}
}
और दूसरी तरह के आसपास:
private Object convertFromBytes(byte[] bytes) throws IOException, ClassNotFoundException {
try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInput in = new ObjectInputStream(bis)) {
return in.readObject();
}
}
'बाइट []' क्यों? क्यों न केवल 'ऑब्जेक्टऑटपुटस्ट्रीम' के साथ सॉकेट पर इसे लिखें, और इसे 'ऑब्जेक्ट इनपुट स्ट्रीम' के साथ पढ़ें? – EJP
@wuhaochi क्या आपको * वास्तव में * ऑब्जेक्टऑटपुटस्ट्रीम.writeObject() 'और' ObiectInputStream.readObject() 'का उदाहरण चाहिए? – EJP