可以在NDEF记录中存储多个序列化的对象,并将它们作为字节数组分隔符进行分隔。当解析NDEF记录时,可以按照字节顺序反序列化对象。
以下是一个示例代码,用于将多个对象序列化并存储在一个NDEF记录中:
Val objects = new ArrayList<> (); objects.add (new MyObject (1, "object1")); objects.add (new MyObject (2, "object2")); objects.add (new MyObject (3, "object3"));
ByteArrayOutputStream bos = new ByteArrayOutputStream (); ObjectOutputStream oos = new ObjectOutputStream (bos); for (Object obj:objects) { oos.writeObject (obj); bos.write (0); //在每个对象之间添加字节分隔符 } oos.close (); bos.close ();
byte [] bytes = bos.toByteArray ();
NdefMessage message = new NdefMessage (new NdefRecord (NdefRecord.TNF_MIME_MEDIA, "application / vnd.myapp.clip", new byte [0], bytes));
要解析NDEF记录并反序列化多个对象,请使用以下代码:
byte [] payload = record.getPayload ();
ByteArrayInputStream bis = new ByteArrayInputStream (payload); ObjectInputStream ois = new ObjectInputStream (bis);
List
//读取分隔符字节
bis.read ();
}
ois.close (); bis.close ();
//使用反序列化的对象 for (Object obj:objects) { MyObject myObj = (MyObject) obj; //做一些操作...... }