易截截图软件、单文件、免安装、纯绿色、仅160KB

Java Read()阻塞的一种处理方式

java.io.InputStream的read()方法描述:
        If no byte is available because the end of the stream has been reached, the value -1 is returned.
        到达流的末尾真会放回-1吗?
        文件读写中可以返回-1
      Socket通讯则有一说,很奇怪我发现c语言似乎读到数据流结尾可以得到-1;而Java中则比较难得到-1,读不到数据时候read()会一直阻塞中,从JDK1.4后很多人是用java.nio,那是另一个话题。
      读取socket流中数据,根据-1判断是不现实的(通常定义各自通讯协议),这里没有考虑网络断掉情形,直接读取数据,关键问题就是考虑什么时候退出循环,不在读取数据,否则read()阻塞。思路:用一次读1024字节衡量,最后一次没有读满或者刚好读满时候,表示流中没有数据了。
接收端代码片段:
InputStream is = socket.getInputStream();
int len = 0;
byte[] buf = new byte[1024];
StringBuffer sbf = new StringBuffer();
String temp = null;
int i = 0;
len = is.read(buf);
while(true){
temp = new String(buf,0,len);
sbf.append(temp);
if(len>=buf.length){
len = is.read(buf);
}else{
break ;
}
}


相关文档:

JAVA程序全局键盘监听事件


// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
Toolkit tk = Toolkit.getDefaultToolkit();
tk.addAWTEventListener(new MyAWTEventListener(), AWTEvent.KEY_EVENT_MASK);
class MyAWTEventListener implements AWTEventListener {
    private boolean controlPressed = fal ......

java高手之路

Java Learning Path (一)、工具篇
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外, ......

java正则表达式

   在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1- ......

JAVA规范学习——String字面常量

package testPackage;
class Test {
public static void main(String[] args) {
String hello = "Hello", lo = "lo";
System.out.print((hello == "Hello") + " ");
System.out.print((Other.hello == hello) + " ");
System.out.print((other.Other.hello == hello) + " ");
System.out.print((hello == ("Hel"+"lo ......

Java过滤器验证登录用户

1.首先写一个权限过滤filter类,实现Filter接口
/*首先写一个权限过滤filter*/
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号