A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

IO流read() 返回int 这个int指的是什么?read(数组) 返回int  这个int指的是什么?
readLine返回值问题
被搞晕了!!



7 个回复

倒序浏览
赵顺超 来自手机 中级黑马 2014-7-28 07:46:27
沙发
字节流的read方法,返回的是int类型数,字符流的readline方法,返回的是字符串。前面判断条件是是否返回-1,后面是是否返回  null。可以去看看API帮助文档,里面写的很详细
回复 使用道具 举报
1>IO流read() 返回int 这个int指的,字符流的话是字符所对应的ASCII码值,
2>字节流指的是字节的8位二位数据所对应的Byte数据值,而这个byte值被一个特有的计算方法转换成了int型
3>read(数组) 返回int  这个int指的是数据有存入数组中的个数,就是指有多少个字节或者字符存入了数组中4>readLine返回值问题是读取的行数据的字符串表现形式!
回复 使用道具 举报
顺便复习一下,呵呵
=================================================================================
方法:read()
参考流:InputStream
官方api示意:public int read()throws IOException
从类 InputStream 复制的描述 从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而
没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。 子类必须提供此方法的一个实现。
大意:read()返回的int就是当前读到的字节,当返回值为-1时表示结束。其他的输入流包括字符流基本上也都有这个方法,只不过
字符流read()读取的是一个字符
---------------------------------------------------------
方法:read(byte[] b)
参考流:FileInputStream
官方api示意:
public int read(byte[] b)throws IOException
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在
某些输入可用之前,此方法将阻塞。
参数:b - 存储读取数据的缓冲区。
返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
抛出:IOException - 如果发生 I/O 错误。
大意:读取一个b.length大小的字节数组,到b中。如果到达文件末尾则返回-1,-1表示结束。InputStream中没有这个方法
-----------------------------------------------------------
方法:readLine()
参考流:BufferedReader
官方api示意:

public String readLine()throws IOException
读取一个文本行。通过下列字符之一即可认为某行已终止:换行('\n')、回车 ('\r') 或回车后直接跟着换行。
返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
抛出:IOException - 如果发生 I/O 错误
大意:返回值为读取的一行文本,返回值中不包括换行、回车。当读到末尾则返回null值。InputStream、FileInputStream中没有该方法
=========================================================================================

回复 使用道具 举报
read()
read(数组)
这两个返回的int是读写的次数,因为read方法每次都读一个字节,区别在于。
read()如果有内容读取时,返回的是1,当读到末尾是返回的是-1。
read(数组)是因为有个缓冲数组,他每次也是只读一个字节,但是他把读取的内容都存储到缓冲数组中,数组的长度取决于你定义的长度。就比如说byte[] buf = new byte[10];这样的话,他能存储10个字节的数据,返回值的话是数组中的数据个数而定的,比如我只读了5次就到文件末尾了,则返回值为5.

readLine:这个是读一行,返回值是一个,返回值是是一个字符串,就是你读到的内容,如果读到文件末尾则返回null。
回复 使用道具 举报
zippo 发表于 2014-7-28 08:34
read()
read(数组)
这两个返回的int是读写的次数,因为read方法每次都读一个字节,区别在于。

明白了,谢谢哦:)
回复 使用道具 举报
洛漠O_o 发表于 2014-7-28 08:23
顺便复习一下,呵呵
================================================================================= ...

学习了,谢谢咯:)
回复 使用道具 举报
来学习一下。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马