2019-05-07 IO流 进一步了解

InputStream 接入system in 在调用read函时处于阻塞状态,

InputStream  read方法返回字节 的解码值

Buffed 的read 返回字节/字符数

Print流    设置自动刷新

readline 返回读取的一行字符串

IO流中的 read

Reader:

public int read(char[] cbuf)

将字符读入数组。 该方法将阻塞,直到某些输入可用,发生I/ O错误或达到流的结尾。

InputStream:

public int read(byte[] b)        throwsIOException

从输入流读取一些字节数,并将它们存储到缓冲区b。 实际读取的字节数作为整数返回。 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。

如果b的长度为零,则不会读取字节并返回0; 否则,尝试读取至少一个字节。 如果没有字节可用,因为流在文件末尾,则返回值-1; 否则,读取至少一个字节并存储到b。

第一个字节读取存储在元素b[0],下一个字节存入b[1]等等。 读取的字节数最多等于b的长度。 令k为实际读取的字节数; 这些字节将存储在元素b[0]至b[k-1],使元素b[k]至b[b.length-1]不受影响。

该read(b)用于类方法InputStream具有相同的效果为:

read(b, 0, b.length)

参数

b- 读取数据的缓冲区。

结果

读取到缓冲区的总字节数,或者如果没有更多的数据,因为已经到达流的末尾,则是-1。

如何判断是否达到流的末尾了 呢?

对于文件 ,系统会自动帮你判定是否到达文件末尾

对于SYstem,in  他是一个BUfferedInputStream

这是进程的标准输入输出,程序启动时创建,退出时关闭

可以加入标记判断退出循环读取

你可能感兴趣的:(2019-05-07 IO流 进一步了解)