zl918 发表于 2012-1-7 13:18
嗯,不错的解决办法,谢谢哈!其实,模仿一下ArrayList()的实现也可以的。
我是这么做的:
do{
你看我理解的对不对啊 假如要是每次都执行一次清空的话 就会形成资源有浪费 因为数组时固定的,而read()方法是每次读取一个字节,每次就读取一个字节然后就刷新出去 ,会浪费大部分未使用的空间,当数组写满后再清空,这样好像传输的也会更快些……
例如- char[] buffer = new char[]; // 这是自定义的缓冲区
- int len;
- while((len=**.read(buffer))!= -1) //从缓冲区读出的数据,判断是否等于-1
- **.write(buffer, 0 ,len)//将数据从数据中写出
复制代码 我一般是这样用 然后在最后把输出输入流一关或者刷新一下 也保证了数据的完整性 也保证了数组的充分利用 |