StringBuffer的delete方法怎么用 我现在有一个byte[] 每次存1600个字节,存一次用StringBuffer.append()加在后面,那么我通过StringBuffer.delete(0,3)的方法,删除的是一个字节数组里面的前4个字节,还是删除的前4个字节数组。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 前四个字节下面是我写的测试类,做为参考,lz可以参考一下public class Test { public static void main(String[] args) { StringBuffer sbWhere = new StringBuffer(); char[] c = {'a','b','c','d','e','f','g'}; sbWhere.append(c); sbWhere.delete(0, 3); System.out.println(sbWhere.toString()); }}结果:defg说明删除的是前四个字节数组 我刚也测试了下。其实不是删的字节数组,你把每个字节数组里面多写几个试试,删的时候其实是将字节数组变成了字符串“abcdefg”,然后删除的是abcd这四个字符。其实跟字符数组没有关系 LZ好像自己醒悟过来了StringBuffer的delete是删除StringBuffer对象的字符串信息,并不会删除原来的数组 可以用ByteArrayInputStream和ByteArrayOutputStream比如byte[] b1 = {1,2,3,4};byte[] b2 = {5,6,7,8};ByteArrayOutputStream bos = new ByteArrayOutputStream();bos.write(b1, 0, b1.length);bos.write(b2, 0, b2.length); byte[] b3 = bos.toByteArray(); //相当于b2接到b1后面,得到一个新的byte数组b3ByteArrayInputStream bis = new ByteArrayInputStream(b3); int n = 0;while ((n=bis.read()) != -1) { //从字节流中读入字节并输出 System.out.println(n);} 怎么打开一个Java项目 io流截取视频的问题 进制转换 求助算法 新年到,新年好,在j2se里第一次散分,望多多捧场! 之二 各位大侠,请问如何设置环境变量?谢谢! Vector类的问题 大家来谈谈object和record的区别吧!!!! java如何实现串口通信,急!急!急! 怎么将Class文件打包成.jar文件呢?? final与线程问题!急!!! 数组能进行类型强制转换吗?
public static void main(String[] args) { StringBuffer sbWhere = new StringBuffer();
char[] c = {'a','b','c','d','e','f','g'};
sbWhere.append(c);
sbWhere.delete(0, 3);
System.out.println(sbWhere.toString());
}
}结果:defg
说明删除的是前四个字节数组
我刚也测试了下。其实不是删的字节数组,你把每个字节数组里面多写几个试试,删的时候其实是将字节数组变成了字符串“abcdefg”,然后删除的是abcd这四个字符。其实跟字符数组没有关系
StringBuffer的delete是删除StringBuffer对象的字符串信息,并不会删除原来的数组
比如
byte[] b1 = {1,2,3,4};
byte[] b2 = {5,6,7,8};ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.write(b1, 0, b1.length);
bos.write(b2, 0, b2.length);
byte[] b3 = bos.toByteArray(); //相当于b2接到b1后面,得到一个新的byte数组b3ByteArrayInputStream bis = new ByteArrayInputStream(b3);
int n = 0;
while ((n=bis.read()) != -1) { //从字节流中读入字节并输出
System.out.println(n);
}