关于java的inputStream究竟一次会读多少byte?

我看过很多示例代码都是像这样byte[]buf=newbyte[1024];某Inputstreamis=什么intnum=is.read(buf)有一些inputstr... 我看过很多示例代码都是像这样
byte[] buf = new byte[1024];
某Inputstream is = 什么
int num = is.read(buf)
有一些inputstream我看到了在创建的时候能指定一次读进的最多byte数,但是有的是不能指定的,比如调用getXXXX()得到的,可是很多代码对这样的is还是那么用,真的么问题么?
会不会直接读超过1024了?比如网络通信的时候
展开
 我来答
百度网友582ebf573
2015-09-17 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:103
采纳率:100%
帮助的人:61.5万
展开全部
inputStream有多个read()方法,带不同参数

如果直接read(),只读一个字节
如果read(byte[]),则看参数的数组有多长,就读多少,如果stream中的数据不够,那有多少读多少

如果read(byte[],offset,length),比较复杂一些,最多读取length个字节的数据,具体的可以看一下JDK的api文档
百度网友b87bead68d
2011-09-14 · TA获得超过213个赞
知道答主
回答量:120
采纳率:0%
帮助的人:108万
展开全部
你根据你的程序来定义缓冲区的大小,比如一般局域网聊天软件,缓存定义个3*1024就够用了。  如果内容超过了缓存大小,那肯定会造成数据丢失的。
追问
原来如此唉。。那我还是定大点……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友93a4c33
2011-09-14 · TA获得超过1496个赞
知道大有可为答主
回答量:1516
采纳率:0%
帮助的人:1318万
展开全部
首先可以告诉你,不能读的超过1024个,超过了,后面的就读不到了!
更多追问追答
追问
这个是java的规定么?也就是说我创建个1024的byte数组肯定够用?
追答
她只是一个缓冲区。一次缓冲不够,缓冲几次就好了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式