原文:网络流中 InputStream.available() = 0 问题探究

在处理文件输入流时,通过调用available 方法来获取还有多少字节可以读取,根据该数值创建固定大小的byte数组,从而读取输入流的信息。 但是在处理网络流 socket 时,通过available 方法对输入流进行长度判断,数值为 ,这意味着对方发送的流中无数据,但实际上并非如此。 原因在于: 网络通讯往往是间断性的,一串字节往往分几批进行发送。例如对方发来字节长度 的数据,本地程序调用ava ...

2019-05-09 01:15 0 3353 推荐指数:

查看详情

关于 InputStream.available()

InputStream.available() 可以获取InputStream的总的长度吗 答案是不确定。总结如下: 处理文件输入流: 可以 处理网络(socket):不可以 官方的说明是: 总之,尽量还是别使用它来获取的长度, 如果是文件, 我们完全可以 ...

Sat Nov 13 04:41:00 CST 2021 0 5185
Java关于InputStream类的available()方法

要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据里有多少个字节可以读取。需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来 ...

Thu Apr 21 18:30:00 CST 2022 0 1328
InputStreamavailable和read方法读取数据不全?

1.问题描述 需要将InputStream转换为byte[]数组,定义的方法如下: 在对文件进行转换并保存到本地时,发现文件不完整或内容错误。 2.原因分析 从代码可以看出,在读物流时调用的是available方法,点击进入其源码发现其返回的是当前可用长度(估计值 ...

Mon Dec 20 00:15:00 CST 2021 0 812
java 把InputStream写入到文件

基于(Stream)的解决 是单向的有方向性的描述信息的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等. 写入文件,对程序来说是出,是写,就是FileOutputStream,可以写入int ...

Tue Mar 03 18:49:00 CST 2020 0 12891
java 把InputStream写入到文件

基于(Stream)的解决 是单向的有方向性的描述信息的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等. 写入文件,对程序来说是出,是写,就是FileOutputStream,可以写入int也可以byte ...

Fri Nov 20 21:45:00 CST 2015 3 15992
InputStream类的available()方法

InputStream类的available()方法 这个方法可以在读写操作前先得知数据里有多少个字节可以读取需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了1000个字 ...

Tue Feb 20 04:41:00 CST 2018 2 5810
关于InputStream类的available()方法

要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据里有多少个字节可以读取。需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明 ...

Fri May 13 00:17:00 CST 2016 3 34037
网络网络问题汇总)

基本概念: 网络:(1)有一个源点 s 和汇点 t 。 (2)每一条有向边e=(u,v)都有一个容量限制记做c(e)。 :定义在网络弧集上的实值函数 f ,满足三个性质 (1)对任意的弧 0 <= f <= c(e ...

Wed Aug 15 01:21:00 CST 2018 0 1023
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM