java socket InputStream 笔记
2015-11-24 11:38
411 查看
这是工作中遇到的时候在网上找的答案,经过自己测试符合自己想要的答案,在此做个记录,方便以后查看。
本笔记是关于在开启socket服务时的输入输出流的read()方法的正确使用。
在写网络应用中会经常这样写 :
解决办法:
本笔记是关于在开启socket服务时的输入输出流的read()方法的正确使用。
在写网络应用中会经常这样写 :
while ((len = inStream.read(buffer)) != -1) {但这样往往容易发生错误或死在循环里。
解决办法:
/** * @功能 读取流 * @param inStream * @return 字节数组 * @throws Exception */ public static byte[] readStream(InputStream inStream) throws Exception { int count = 0; while (count == 0) { count = inStream.available(); } byte[] b = new byte[count]; inStream.read(b); return b; }
</pre><pre name="code" class="java">还有一种读取指定长度字节的方法:<pre name="code" class="java">int count = 100; byte[] b = new byte[count]; int readCount = 0; // 已经成功读取的字节的个数 while (readCount < count) { readCount += inStream.read(b, readCount, count - readCount); }
</pre><pre name="code" class="java">记录结束,收工。
原文出自:<a target=_blank href="http://cuisuqiang.iteye.com/blog/1434416">点击打开链接</a>
相关文章推荐
- eclipse 使用问题,按F3或者ctrl+click事件时,“current text selection cannot be opened in an editor”
- Java常量的应用
- java可视化编程-eclipse安装windowbuilder插件
- springmvc 和struts2的区别
- Java序列化与反序列化
- spring mvc请求一次,controll执行两次(ajax,谷歌浏览器)
- Java获取Jar或者War文件运行时的绝对路径
- 8、Java多线程
- javax.servlet.jsp.JspException cannot be resolved to a type
- Spring定时器
- java Timer学习笔记
- Java 2使用教程:事件的处理
- solrj分词Java使用
- springmvc 和struts2的区别
- Elipse安装Spring Tool Suite
- Myeclipse快捷键的使用
- springmvc 和struts2的区别
- Struts的工作原理
- jdk安装及 JAVA_HOME环境设置
- java使用监听器实现对在线用户的统计