2 qq 34042297 qq_34042297 于 2016.04.06 11:51 提问

java中read方法的返回值

在ByteArrayInputStream中返回“下一个数据字节,如果到达流末尾,则返回 -1”。还是不太理解,能详细的说一下吗?
下一个数据字节指的是什么?
这和FileInputStream的返回值一样吗?图片说明图片说明

4个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.06 12:09
  首先,InputStream是字节读取的,每次读取文件一个字节的数据,并将这个字节的数据转换Java的byte类型的一个整数返回,如果为-1说明读取不到数据了,即到达文件尾部了。read操作就是逐字节地读取数据,所以需要循环操作直到读到-1操作结束。其次,字节数据通常我们无法识别,所以都是转化成字符串来处理的。
Royal_lr
Royal_lr   Ds   Rxr 2016.04.06 13:38

字节流都是-1的时候就结束了读取,,具体的可以看下api

huangyue009
huangyue009   2016.04.06 13:52

所有流的read都是一样的,流除了源不一样其他基本都一样的

CSDNXIAON
CSDNXIAON   2016.04.06 12:02

compareTo()方法返回值 String java
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JAVA IO中read()方法的返回值
以下是不太严谨的个人理解,有错误欢迎指出,共同进步:read()方法的作用是从输入流读取数据的下一个字节,返回的字节的值是一个0~255之间的整数。到达流的末尾返回-1。刚开始我以为这个返回值表示的是所读取的数据的长度,可是之后在一个示例程序中发现这种说法解释不通。我就好奇研究了一下这个返回值到底表示什么。首先要知道什么是字节(Byte)和比特(bit),它们都是计算机信息量的度量单位。 每一个二
关于java字节流的read()方法返回值为int的思考
 关于java字节流的read()方法返回值为int的思考 原文地址:点击打开链接 (2012-06-17 19:57:30) 转载▼ 标签: 杂谈   我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐 等文件)。问题是为什么字节流中定义的
JAVA语言中read方法分析
在JAVA语言中,输入和输出功能依靠流来完成,输入输出流则 依靠InputStream和OutputStream两个类及其子类实现。lnputStream 类及其子类主要负责输入数据, 如果需要通过键盘输入数据. InputStream类巾的read方法是最常用的输入方法。许多学生学习过 程中产生迷惑, 以及出现问题也是在使用read ‘法输入数据时发生 的。 如果要使用read方法输入数据,应使用“System.in.read()”的形式。 在这个语句中,System是一个最终类,,不能用来产牛列象,它提供了 标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的 访问;加载文件和库的方法;快速复制数组的一部分的实用方法 in是 System类中一个InputStream类的对象.提供 输入数据的方法,最常 用的read方法有三个: read0:从输人流中读取数据的下一个字节。 read(byte[]b):从输入流中读取一定数量的字节,并将其存储在缓 冲区数组b中 read(byte[]b,int oK int len):将输入流中最多len个数据字节渎 入byte数组,从下标为off的元素开始存储。
InputStream read()方法详解
在Java7中,InputStream被定义为一个抽象类,相应的,该类下的read()方法也是一个抽象方法,这也就意味着必须有一个类继承InputStream并且实现这个read方法。 查阅Java7 API,我们可以看到,在InputStream中定义了三个重载的read()方法: 但是在这三个方法中,只有参数列表为空的read方法定义为抽象方法,这也就意味着在直接继承自InputStre
java基础--Java 字节读取流的read方法返回int的原因
为什么InputStream.read()读取一个byte确返回一个int呢? java 字节读取流的read方法一次读一个byte但返回int的原因 读取二进制数据按字节读取,每次读一个字节(byte)。 read()的底层是由C++实现的,返回的是unsigned byte,取值范围为[0~255],在java中没有对应的类型,所以只能用int类型接收,由Java接收得到
java中read()和readline()方法对比
java;read();readline()
Java-----Socket中read方法什么时候返回-1
Java-----Socket中read方法什么时候返回-1
FileInputStream的read方法详解
原文链接:http://www.cnblogs.com/post/readauth?url=/zuoxiaolong/p/jni2.html         我们先来看下FileInputStream中的四个有关read的方法的源码,如下。 public native int read() throws IOException; private native int
Java文件读操作(两种read方法)
将文件中的数据读入程序,是将程序外部的数据传入程序中,应该使用输入流——InputStream或Reader。而由于读取的是特定的数据源——文件,则可以使用输入对应的子类FileInputStream或FileReader实现。 在实际书写代码时,需要首先熟悉读取文件在程序中实现的过程。在Java语言的IO编程中,读取文件是分两个步骤: 1、将文件中的数据转换为流(由系统完成,只需要创建
字符流中read()方法返回值的问题
图片来自知乎。。 这里的n表示文件中字符的长度,当读到结尾即为-1,然后用String()方法,转换为字符串