求助ByteBuffer操作socket问题
ByteBuffer buf 这个,我可以把每次读取的东西再用ByteBuffer buf对象叠加起来吗。我这个是Socket读取数据
。传来的数据,中英文都有,因为数据很长,所以要分批次读取。比如说每次读1024个字节,但是读到1024时,可能出现半个汉子。所以想全部读取出来再解码。ByteBuffer byteBuffer = ByteBuffer.allocate(BUFFERSIZE);
[解决办法]
如果数据量不是很大的情况下,可以用ByteArrayOutputStream解决。如果数据量很大的话,就建议用磁盘文件来解决。
[解决办法]
1.优先要求socket通讯,传过来的数据不存在中文截断的情况
2.如果只能在接收端修改,那么量大的时候,可以考虑一边处理一边接收
[解决办法]
“因为数据很长”,长到什么程度?
1、数据长度内存能接受,就全部接收完成才进行字符转换
2、如果数据大到需要保存到本地,那么转换的时候也还有读取半个字符问题,个人猜想是否可以判断读取的末尾字节的acsii码决定是否需要继续读取下一个字节
鄙人陋解,待大神解决
[解决办法]