`
knitter
  • 浏览: 65360 次
  • 来自: ...
社区版块
存档分类
最新评论

Java网络编程中inputStream.available()的使用方法

阅读更多

如果服务器发来的字节流没有作任何标记,只是在发完一次数据后flush(),则在客户端可以用inputStream.available()来判断流的长度,但一定要在调用read()至少一次之后,不然就只能得到零值。

实例代码如下:

 

//通过BLOB对象获得一个InputStream
InputStream input = imageblob.getBinaryStream();

// ServletOutputStream用来传输数据,
OutputStream out = response.getOutputStream();
        
int firstChar = input.read();
int length = input.available();
        
//将其转换成二进制数据
byte[] image = new byte[length];
image[
0= (byte)firstChar;

int len = 0;
while ((len = input.read(image,1,length-1)) != -1...{
  out.write(image, 
0, len);
}

out.flush();
out.close();
分享到:
评论
1 楼 leo_soul 2010-09-04  
你的例子程序写的有点问题。
int firstChar = input.read();
之后, 输入流里就会少一个byte(已经被读出去了),所以
int length = input.available()+1;
这样后边的程序就对了。

相关推荐

    原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法

    原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法

    java.io.Reader 和 java.io.InputStream 的区别

    java.io.Reader 和 java.io.InputStream 的区别

    SocketInputStream.java

    深入剖析tomcat第三章SocketInputStream源码 * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/StringManager.java,v 1.2 2001/07/22 20:25:14 pier Exp $ * $Revision: 1.2...

    Java中InputStream类.pdf

    Java中InputStream类.pdf 学习资料 复习资料 教学资源

    java网络编程示例

    Java 网络编程 说明: 网络编程,分为两种一种是TCP、另一种是UDP方式。我们分别写一下TCP、UDP端的Server和Client简单演示代码。 TCP: Sever import java.io.DataInputStream; import java.io.IOException; ...

    Socket中InputStream的read方法的阻塞特性

    NULL 博文链接:https://superherosk123.iteye.com/blog/611933

    Java程序设计复习题.docx.docx

    URL Java中定义常量的保留字是是 B - A. const B. final C. finally D. native 在调用方法时,若要使方法改变实参的值,可以。 A,用基本数据类型作为参数 B.用指针作为参数 C,用对象作为参数 D.以上都不可以 下列...

    Android中读取中文字符的文件与文件读取相关介绍

    (1)方法1:InputStream.available()得到字节数,然后一次读取完。 代码如下: private String readUserAgreementFromAsset(String assetName) { String content =””; try { InputStream is= getAssets().open...

    java网络编程抓取指定网页信息--UrlHtml(java源码)

    import java.io.DataInputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; public class UrlHtml { @SuppressWarnings("deprecation") public ...

    Base64InputStream.txt

    微信JSAPI工具包

    Java SE程序 文件的拷贝InputStream类

    Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝...

    java 编程入门思考

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    Java实现txt转pdf

    byte[] inputBytes = new byte[inputStream.available()]; inputStream.read(inputBytes); inputStream.close(); // 创建PDF文档 Document document = new Document(); PdfWriter writer = PdfWriter....

    Java资源加载库Azzet.zip

    , java.io.InputStream, java.nio.ByteBuffer, java.io.ByteArrayOutputStream)TXT (java.lang.String, char[], java.nio.CharBuffer, java.lang.StringBuffer, java.lang.StringBuilder)支持的数据源:...

    java InputStream读取数据问题

    NULL 博文链接:https://cuisuqiang.iteye.com/blog/1434416

    SocketInputStream.rar_网络编程_Unix_Linux_

    The SocketInputStream supports the streamed reading of bytes from a socket.

    示例代码显示 TS (TataSky) 直播频道 api 如何工作_python_代码_下载

    一个脚本,用于根据用户在 Tata Sky 门户网站上订阅的频道生成包含直接流式文件(.mpd 或 MPEG-DASH 或 DASH)的 m3u 播放列表。你只需要登录就可以了 ...更多详情、使用方法,请下载后阅读README.md文件

    Thinking in Java 中文第四版+习题答案

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    xml2jsonjar包

    import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; ...

    Socket编程实验报告.docx

    此时服务器指定为本地计算机,若要在网络中指定服务器,只需要将参数localhost改成相应的服务器名或者IP地址即可。 然后程序利用Socket类提供的方法创建Socket对象的输入流和输出流。此后即于服务器通信,断开连接即...

Global site tag (gtag.js) - Google Analytics