2012-04-29 40 views
3

爲孫醫生說,我們不應該使用字節流 -爲什麼要避免使用多字節流在Java中

實際上它代表的是一種低級別的I/O,你應該避免的。

什麼是實際的低級別I/O,什麼是使用字節流的確切問題。

+2

什麼「低級別的I/O」的意思,這是一個很多繁瑣的使用字節流並且使用起來很複雜 - 並且更容易混亂。 – 2012-04-29 04:43:45

回答

3

所以Java docs說:

CopyBytes似乎是一個正常的程序,但它實際上代表了 一種低級別的I/O,你應該避免的。由於xanadu.txt包含 字符數據,因此最好的方法是使用字符流,如下一節中討論的 。還有更多複雜數據類型的流。字節流只能用於最原始的I/O。

字節流允許您按原樣訪問文件。只是字節。沒有任何交流。這意味着沒有字符集轉換,不處理整數或浮點數的二進制或ASCII表示形式,不處理字節順序或任何這些。更高級別的流提供了其中一些。

當然,複製文件的程序實際上是需要原始字節流的很好的例子,因爲它不需要或不需要對數據進行任何形式的解釋;它只是想逐字複製它。

那麼什麼真正的意思是,如果你認爲你需要他們,但要確保你知道自己在做:)

2

該建議是在閱讀本教程中討論的文本文件的上下文中。爲此,最好使用字符流來正確處理字符集轉換:

Java平臺使用Unicode約定存儲字符值。 字符流I/O自動將此內部格式轉換爲 和本地字符集。

使用字符流代替字節流 自動適應本地字符集,並準備 國際化的程序 - 無需程序員額外的努力。

相關問題