CopyBytes
似乎是一个普通的程序,但它实际上代表了一种你应该避免的低级I / O.已经提到过,尽管所有都是在bytestream
本身上构建的,但是应该首选字符,对象等流。这背后的原因是什么,它与安全管理器和性能相关的问题有什么关系?
来源:oracle docs
答案 0 :(得分:4)
甲骨文实际上在说的是“请不要重新实现这一点!”。
您几乎不应该需要常规字节流:
在极少数情况下,您实际上需要使用字节流。
答案 1 :(得分:3)
从您引用的文字:
CopyBytes看起来像是一个普通的程序,但它实际上代表了一种你应该避免的低级I / O. 由于xanadu.txt包含字符数据,因此最好的方法是使用字符流,如下一节所述。还有用于更复杂数据类型的流。字节流只应用于最原始的I / O.
通常,您不希望直接使用字节。有更高级别的API,例如读取文本(即必须从字节解码的字符数据)。
答案 2 :(得分:2)
它有效,但效率很低:它复制的每个字节都需要2个方法调用。
相反,您应该使用一个缓冲区(数千字节,最佳大小因您读取的内容和其他条件而异),并在每次方法调用时读取/写入整个缓冲区(或尽可能多)。