繁体   English   中英

Java流读取实际上如何工作?

[英]How does Java Streaming read actually work?

Java输入流实际上如何工作? 例如,当您调用inputstream.read()时,Java如何将文件分解为数据包? Java是否关心文件是否为.mp3,.doc,.txt,.mov? java io实际上如何将所有这些不同的文件类型分解为可以流式传输的数据包?

我非常感谢您对此主题的任何回答。

当您调用inputstream.read()时,Java如何将文件分解为数据包?

没有。 文件没有数据包。

Java是否关心文件是否为.mp3,.doc,.txt,.mov?

没有。

java io实际上如何将所有这些不同的文件类型分解为可以流式传输的数据包?

没有。 这些文件是字节流,并且是基础资源和操作系统(不是Java)的属性。

从流中读取单个字节时, read()方法将阻塞,直到有可用数据为止。

一些流可以按块而不是按字节取数据,但是块大小完全取决于实现方式 (从压缩流读取,基于块密码从加密流读取...)。 您可以询问流可以无阻塞地读取多少个字节( InputStream.available() ),如果需要某种方式您需要知道是否缓冲了多少字节。

Java还提供了一个BufferedInputStream类,该类包装任何流并可以进行缓冲读取。 可以指定缓冲区大小(默认值为8 kB)。 使用文件流时,文件类型对缓冲行为没有影响。 建议在读写文件时始终使用BufferedInputStream / BufferedOutputStream

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM