我正在使用消息api在智能手机和智能手表之间发送消息。因为它只能将字节数组作为数据发送,所以我希望在接收时发送和反转转换时将对象转换为字节数组。
我使用了以下从互联网上获得的代码。但我得到java.io.NotSerializableException。有没有更好的方法呢?
我的对象将有一个字符串值和一个android包。两者都需要从一台设备发送并在另一端接收。
public static byte[] toByteArray(Object obj) throws IOException {
byte[] bytes = null;
ByteArrayOutputStream bos = null;
ObjectOutputStream oos = null;
try {
bos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
bytes = bos.toByteArray();
} finally {
if (oos != null) {
oos.close();
}
if (bos != null) {
bos.close();
}
}
return bytes;
}
public static Event toObject(byte[] bytes) throws IOException, ClassNotFoundException {
Event obj = null;
ByteArrayInputStream bis = null;
ObjectInputStream ois = null;
try {
bis = new ByteArrayInputStream(bytes);
ois = new ObjectInputStream(bis);
obj = (Event) ois.readObject();
} finally {
if (bis != null) {
bis.close();
}
if (ois != null) {
ois.close();
}
}
return obj;
}
答案 0 :(得分:0)
public void toByteArray(Object obj) throws IOException {
FileOutputStream outputstream = new FileOutputStream(new File("/storage/emulated/0/Download/your_file.bin"));
outputstream.write((byte[]) obj);
Log.i("...","Done");
outputstream.close();
}
试试这可能对您有用,它会将您的文件存储在智能手机的下载文件夹中。