我们不应该像Sun Doc所说的那样使用byte Stream——
实际上,它代表了一种您应该避免的低级I/O。
什么是真正的低级I/O,什么是使用字节流的确切问题。
所以Java文档说:
CopyBytes 看起来像一个普通的程序,但它实际上代表了一个 应避免的低级 I/O。由于世外桃源.txt包含 字符数据,最好的方法是使用字符流,如 将在下一节中讨论。还有更多流 复杂的数据类型。字节流应仅用于最多 基元 I/O。
字节流允许您按原样访问文件。 只是字节。 没有任何形式的插话。 这意味着没有字符集转换,没有处理二进制或 ascii 表示中的整数或浮点数,没有处理字节顺序,或者任何类似的东西。 更高级别的流提供了其中一些。
当然,复制文件的程序实际上是一个很好的例子,它需要原始字节流,因为它不需要或不想对数据进行任何类型的集成;它只是想逐字复制它。
所以真正的意思是,如果你认为你需要字节流,请使用字节流,但要确保你知道你在做什么:)
建议是在读取本教程中讨论的文本文件的上下文中。为此,最好使用字符流来正确处理字符集转换:
Java 平台使用 Unicode 约定存储字符值。 字符流 I/O 会自动将此内部格式转换为 以及从本地字符集。
使用字符流代替字节流的程序 自动适应本地字符集并准备好 国际化 — 所有这些都不需要程序员付出额外的努力。