java.io
有许多不同的I/O个流,(FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedStreams等等),我很困惑地确定它们之间的差异。有哪些例子,其中一种流类型优先于另一种流类型,它们之间的真正区别是什么?
答案 0 :(得分:37)
Streams:一次一个字节。适合二进制数据。
读者/作者:一次一个字符。适用于文本数据。
任何“缓冲”:一次多个字节/字符。几乎所有时间都很好。
答案 1 :(得分:24)
在学习Java时,我制作了关于java.io的这个心理方案:
答案 2 :(得分:12)
这是一个很大的话题!我建议您先阅读I/O Streams:
I / O流表示输入 源或输出目的地。一个 流可以代表许多不同的 各种来源和目的地, 包括磁盘文件,设备,其他 程序和内存数组。
Streams支持许多不同的类型 数据,包括简单字节, 原始数据类型,本地化 字符和对象。一些流 简单地传递数据;其他人操纵 并以有用的方式转换数据。
答案 3 :(得分:8)
将每个名字分成单词:每个大写都是不同的单词。
依旧等等
正如mmyers所写:
Streams:一次一个字节。
读者/作者:一次一个字符。
缓冲*:一次多个字节/字符。
答案 4 :(得分:5)
我也发现了java_tip_how_read_files_quickly
非常实用! 它显示哪些流最有效。
答案 5 :(得分:3)
您提到的特殊化是用于为各种数据源提供标准接口的特定类型。例如,FileInputStream和ObjectInputStream都将实现InputStream接口,但将分别对文件和对象进行操作。
答案 6 :(得分:3)
这可能是对Java IO API中各种流,Reader和Writer的最全面的概述:
http://tutorials.jenkov.com/java-io/overview.html
它是一个更大的Java IO教程的一部分,涵盖了基于字节和字符的流。
它还包括用于读取和写入原始数字数据的流,如int的float等。
它还包括用于解析的流,如PushbackInputStream和PushbackReader。
答案 7 :(得分:2)
字节流是java 1.0中用于字符和字节的主要和广泛使用的流类型。在Java 1.0之后,它已被弃用,字符流起着重要作用。即,例如
BufferedReader将从源获取字符,其构造函数如下所示 BufferedReader(Reader inputReader)..
这里Reader是一个抽象类,其具体类的一次是InputStreamReader,它将字节转换为字符并从键盘输入(System.in)......
BufferedReader:包含将从流中读取字符的内部缓冲区。内部计数器通过read()跟踪要提供给缓冲区的下一个字符。 InputStreamReader将输入作为字节并在内部转换为字符。
答案 8 :(得分:1)