我有下面的代碼從一個CSV閱讀:有沒有理由不用BufferedReader封裝InputStreamReader?
InputStream inp = getClass().getResourceAsStream(filename);
InputStreamReader r = new InputStreamReader(inp);
BufferedReader reader = new BufferedReader(r);
在回答問題: Java BufferedReader, Convert InputStream to BufferedReader,What is the difference between Java's BufferedReader and InputStreamReader classes?
的BufferedReader [BR]和InputStreamReader的[ISR]都實現了相同的接口。 BR擁有ISR擁有的其他方法,包括常用的readLine()方法和不太有用但仍然相關的skip()方法。你不一定需要無線電通信局閱讀單個字符,儘管無線電通信局在這方面可以比ISR更有效地做到這一點。唯一顯着的區別是FileReader是ISR的一個子類,但不是BR,儘管我在這個網站上有源文件說FileReader由於其他選擇而不再被真正使用。
我的研究表明ISR可以做的所有事情都由BR做得更好。我是一個年輕的開發者,所以每一個定義或導入的類對我來說都是相關的我試圖把握的是如果某些類不再使用,用新版本或框架代替它們。我想知道更多有經驗的開發人員必須說的。那麼,在使用ISR時有沒有理由不使用BR?
的快速鏈接到API:
BufferedReader
InputStreamReader
那麼,如果你想實現你自己的BufferedReader ... –
一個ISR用於從InputStream讀取。 BR從另一位讀者讀取。所以如果你想從流中讀取數據(通常是這種情況)需要緩衝,那麼你可以同時使用兩者。如果您從內存中的字節/字符,或從已緩衝的輸入流中讀取,或者您知道要讀取的字符數量並立即讀取它們,則不需要緩衝 –
請閱讀[什麼類型的問題我應該避免詢問?](http://stackoverflow.com/help/dont-ask),然後再嘗試提出更多問題。 –