从输入流读取字节数组到byte[]中要注意byte[]在不同次数中会累积上一次的字节

如下代码byte[]会在循环中累积,因为之前在byte[]中的字节没清掉会打印出之前的东西,所以要注意,把byte[]的内存分配放在while{}中就可以解决了,保证每次新的循环byte[]都是新的,b也引用新的byte[]内存,之前的byte[]会被自动垃圾回收掉,因为没有变量引用它了。

public class a{
public static void main(String[] args){
String s=null;
byte[] b=new byte[30];
while(true){

try{
System.in.read(b);}catch(Exception e){e.printStackTrace();}
s=new String(b);
s=s.trim();
System.out.println(s);
if(s.equals("exit"))break;}
}
}

原文地址:https://www.cnblogs.com/heysong/p/3711088.html