考试网 >> IT认证 >> JAVA >> JAVA指导 >> 网络数据流的java处理

网络数据流的java处理

发布时间:2006-06-28 10:49     点击:
分页:[1] 2 3 4  下一页

该文章对编写客户服务器应用的java程序员有所帮助,可以解决程序在对方出现故障的时候继续稳定运行.

前言:java程序要处理很多的网络数据,网络数据发送和接收以及数据流的处理是java程序要特别关注的方面,随着java的发展,这些方法也越来越得到重视和加强。本文从几个方面解释了java正确处理网络数据流的要素,这些也是java程序员必须了解的基本的知识。

1:庞大的java流处理 

首先,之所以说java流的庞大,是因为java中的流处理比其他语言的流处理在内容上多的多。

java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。

Java内用Unicode编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode字符流之间的转换。而类InputStreamReader和OutputStreamWriter处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。

对应不同的流,需要不同的流构建器或流过滤实现。java目前依然在逐渐增加其流处理方法,虽然java类库的创作人员可以列举出很多理由来说明这要做的优点,但我还是觉得java开始变得向其他语言一样复杂起来。

2:网络数据流的收发 

java对网络数据的发送和接收处理,也借用了一般流处理的方法。我们知道,在几乎其他所有语言中,网络数据的收发在利用类似send(或write)和recv(或read)的方法时并没有明显的流处理。但是java和这些语言的收发方法有较大区别,要借助流才可以完成: 

width="100%">

.......

  sock = new Socket(addr, port);

  OutputStream os = sock.getOutputStream();

  InputStream is = sock.getInputStream();

  os.write(byte[] b);

  is.read(byte[] b);

width="100%">

......

ByteBuffer bytebuf = ByteBuffer.allocate(2048); // 创建一个指定大小的缓冲区
分页:[1] 2 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有