android 如何用json传递文件

发布网友 发布时间:2022-04-26 20:56

我来回答

2个回答

热心网友 时间:2023-11-01 09:29

先发现json可以直接传递个Object对象。开始时打算将文件读取成byte[]数组,然后再将byte转换为object来传递。通过如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但测试发现调用这个函数时发生错误java.io.StreamCorruptedException,不知道为什么。而后又想能不能直接传递个File对象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");请问这样这样能不能行通?因为发现很多跨进程传递对象数据都必须要求对象是序列化的。所以此处很疑惑通过json方法是否也需要这个File对象要序列化什么的。

热心网友 时间:2023-11-01 09:29

先发现json可以直接传递个Object对象。开始时打算将文件读取成byte[]数组,然后再将byte转换为object来传递。通过如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但测试发现调用这个函数时发生错误java.io.StreamCorruptedException,不知道为什么。而后又想能不能直接传递个File对象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");请问这样这样能不能行通?因为发现很多跨进程传递对象数据都必须要求对象是序列化的。所以此处很疑惑通过json方法是否也需要这个File对象要序列化什么的。请各位大侠给小弟弟讲解下这概念原理,说明这里为什么能行,为什么不行。谢谢。

热心网友 时间:2023-11-01 09:29

先发现json可以直接传递个Object对象。开始时打算将文件读取成byte[]数组,然后再将byte转换为object来传递。通过如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但测试发现调用这个函数时发生错误java.io.StreamCorruptedException,不知道为什么。而后又想能不能直接传递个File对象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");请问这样这样能不能行通?因为发现很多跨进程传递对象数据都必须要求对象是序列化的。所以此处很疑惑通过json方法是否也需要这个File对象要序列化什么的。

热心网友 时间:2023-11-01 09:29

先发现json可以直接传递个Object对象。开始时打算将文件读取成byte[]数组,然后再将byte转换为object来传递。通过如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但测试发现调用这个函数时发生错误java.io.StreamCorruptedException,不知道为什么。而后又想能不能直接传递个File对象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");请问这样这样能不能行通?因为发现很多跨进程传递对象数据都必须要求对象是序列化的。所以此处很疑惑通过json方法是否也需要这个File对象要序列化什么的。请各位大侠给小弟弟讲解下这概念原理,说明这里为什么能行,为什么不行。谢谢。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com