日期:2014-05-20  浏览次数:20746 次

从缓存中读数据的问题
BufferedReader br = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "ISO-8859-1"));//读取返回信息
char rt[] = new char[2];
int length = br.read(rt, 0, 2);

按照代码,如果缓存中没有数据,br、rt[]、length分别是什么值?
缓存 java bufferreader

------解决方案--------------------
br就一个读缓冲流;rt[]={0,0}(打印的话,会显示两个框框);length为-1
------解决方案--------------------
引用:
自己做了一下实验,只有在socket连接断开的时候,控制台才显示出length为-1.否则一直没有数据输出。

还想问一下怎么判断缓存为空呢?

InputStream in=socket.getInputStream(),
int bufferSize=in.available();
if(bufferSize==0){
System.out.println("The socket buffer is empty");