我有一个BufferedReader对象和一个PrintWriter
对象。所以我可以传递String
任意类型的json-io
对象(例如:List,Map,MyOwnClass)
我的类有byte[]
属性,此byte[]
将保留文件字节,例如图像。
我班级生成的json非常大,很明显......然后我开始认为必须有更好的方法来传输文件。
我是否应该将所有机制更改为仅转移byte[]
而不是String
?有人知道聊天程序使用的机制是什么吗?我应该保留数组的前20个字节以进行消息识别吗?
答案 0 :(得分:1)
我会将它写入二进制中的
假设class
有一个String
和一个byte[]
。
String
String
的长度使用DataOutputStream
。writeInt(int)
(或较小整数的方法),然后OutputStream
。write(byte[])
写入返回值String
。getBytes(String)
与明确指定的字符集。byte[]
DataOutputStream
。writeInt(int)
(或较小整数的方法),然后OutputStream
。write(byte[])
来传输byte[]
。< / LI>
另一方面,你会做与此程序完全相反的事。
我选择了这种二进制方法而不是JSON,因为即使你能够传输byte[]
和JSON几乎和二进制一样有效,它也会打败它JSON的目的:人类可读。