Java I/O流; 有什么区别?

Law*_*nce 20 java io stream java-io

java.io有许多不同的I/O流,(FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedStreams ......等),我很困惑,在确定它们之间的差异.有哪些例子表明一种流类型优先于另一种流类型,它们之间的真正区别是什么?

Mic*_*ers 38

流:一次一个字节.适合二进制数据.

读者/作者:一次一个字符.适合文本数据.

任何"缓冲":一次多个字节/字符.几乎所有的时间都很好.

  • 真?在我检查的最近一次,切换到普通的FileReader时,性能下降了40%.你在读什么? (9认同)

dfa*_*dfa 24

在学习Java时,我制作了关于java.io的心理方案:

  • 面向字节的流(8位)
  • 适用于二进制数据,例如Java .class文件
  • 适用于"面向机器"的数据

读/写器

  • char(utf-16)导向流(16位)
  • 适用于Java源等文本
  • 适合"以人为本"的数据

缓冲的

  • 除非另有证明,否


And*_*are 12

这是一个很大的话题!我建议您先阅读I/O Streams:

I/O流表示输入源或输出目标.流可以表示许多不同类型的源和目标,包括磁盘文件,设备,其他程序和内存阵列.

Streams支持许多不同类型的数据,包括简单字节,原始数据类型,本地化字符和对象.有些流只传递数据; 其他人以有用的方式操纵和转换数据.


T0x*_*ode 8

将每个名称分成单词:每个大写都是不同的单词.

  • 文件输入流是使用文件获取输入.
  • 文件输出流是写输出文件使用

等等等等

正如mmyers写道:

流:一次一个字节.

读者/作者:一次一个字符.

缓冲*:一次多个字节/字符.


She*_*ari 5

我也发现了这个java_tip_how_read_files_quickly

很有用!它显示哪些流最有效.