java 输入流FileInputStream中的read()方法,API的解释如下:

public int read() throws IOException从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。 阻塞是什么意思,我在使用过程中怎么没有感觉到有"阻塞"发生呢?和SCOKET中的accept()的阻塞意思一样吗?

第1个回答  2019-02-12
阻塞是JAVA多线程编程的一个状态,当
FileInputStream
在执行read()方法的时候,CPU就留出时间块来执行这个方法,这时间里别的方法就只能等待,当read方法阻塞的时候,就会有另一个方法开始执行。
至于你感觉不到,那是多线程的表现形式,就是为了让你感觉不到。当有多个方法需要执行的时候,单线程机会依次执行,多线程机则会将CPU分成多个
时间片
,在不同的时间片里执行不同的方法,给人的感觉就是多个方法同时在执行。

关于java.io包中,FileInputStream 的read()方法
public int read() throws IOException 从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。指定者:类 InputStream 中的 read 返回:下一个数据字节;如果已到达文件末尾,则返回 -1。抛出:IOException - 如果发生 I\/O 错误。个人理解:该方法将输入按字节读入,当读取到字节时就返回...

java 输入流类FileInputStream下的read()是什么意思?
1.使用文件输入流读取文件 FileInuputStream istream=new FileInputStream("myfile.dat");或:File f=new File("myfile.dat");FileInputStream istream=new FileInputStream(f);构造方法可能会产生异常IOException,故为了把一个文件输入流对象与一个文件关联起来,需:try { FileInputStream ins=new...

java中FileInputStream的available() 方法的作用是什么?
回答:FileInputStream的available() 方法返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。在某些情况下,非阻塞的读取(或跳过)操作在执行很慢时看起来受阻塞,例如,在网速缓慢的网络上读取大文件时。

Java 中 InputStream 类中方法 read() 的使用问题
你好,read方法是按一个字节一个字节的读,它读取的时候,有一个想游标一样的东西,首先指向流的最开头 当read到-1的时候,表示读取到了流的最后面,表示已读取完毕

JAVA. FileInputStream 的 read()方法一次读取一个字节并返回 那返回...
这个值不能和流中的数据重复,read()方法内部将读取到的所有字节高位补0转为int返回, 这样做所有的数据都会是正数,这时就可以用-1表示流末尾了,而改变后的数据只要强转回byte, 就可以得到原有数据。也就是说你把一个字节的数据和java中的byte类型的数据混淆了。

java中的FileInputStream类中的read()方法是读取一个数据字节,那么读取...
read只会读取一个字节 不会自动读取下一个 只会读第一个字节 和指针不是一回事 如果想用字节流读完文件 一般用一个字节数组的缓冲区 比如200 byte[] buffer = new byte[200];\/\/创建字节数组 int length = 0;while(-1 != (length = is.read(buffer, 0, buffer.length))){ String str =...

Java:FileInputStream输入流的介绍及抽象的read方法问题提问
详情请查看视频回答

java中read()方法的原理是什么?
参数是InputStream的,在方法中,直接把这个参数赋给了变量in。所以FilterInputStream实质上只是对InputStream类做了一个简单的封装,实际调用的方法是在构造方法里传过来的InputStream对象的方法。所以想看read()方法的具体实现,应给去找InputStream类或InputStream类的子类 ...

类FileInputStream中的read(byte[] b)
这个数据就是缓冲区。FileInputStream这个类的构造方法参数是File,每次都要从硬盘设备读取数据,而不是在以有流中,读取出来的数据还是放在byte数组中,这个数组,也是缓冲区。所以应根据选择进行流的包装,是读取文件,还是读取已有的流。不知道这样解释能不能令你满意!

InputStream的read方法是什么?
InputStream的read方法:public abstract int read() throws IOException 从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中 返回值为0到255的int类型的值,返回值为字符的ACSII值(如a就返回97,n就返回110).如果没有可用的字节,因为已经到达流的末尾, -1返回的值 运...

相似回答
大家正在搜