cod*_*ple 3 java io bufferedreader
我有以下代码可以从 CSV 中读取:
InputStream inp = getClass().getResourceAsStream(filename);
InputStreamReader r = new InputStreamReader(inp);
BufferedReader reader = new BufferedReader(r);
Run Code Online (Sandbox Code Playgroud)
关于已回答的问题:
Java BufferedReader,
将 InputStream 转换为 BufferedReader,Java 的 BufferedReader 和 InputStreamReader 类之间有什么区别?
BufferedReader[BR] 和 InputStreamReader[ISR] 都实现了相同的接口。BR 拥有 ISR 的所有方法以及其他方法,包括非常有用的 readLine() 方法和不太有用但仍然相关的 skip() 方法。尽管在这方面 BR 可以比 ISR 更有效地执行相同操作,但您不一定需要 BR 来读取单个字符。唯一的显着区别是 FileReader 是 ISR 的子类而不是 BR,尽管我在本网站上有消息称 FileReader 由于替代方案而不再真正使用。
我的研究表明 ISR 可以做的一切都由 BR 做得更好。我是一名年轻的开发人员,所以每个定义或导入的类对我来说似乎都是相关的。我想了解的是,是否不再使用某些类,用新版本或框架代替它们。我想知道更有经验的开发人员怎么说。那么,在使用 ISR 时是否有理由不使用 BR?
API 的快速链接:
BufferedReader
InputStreamReader
我在您关于 ISR 和 BR 的帖子中看到了一些困惑。
1)你说的是
我的研究表明 ISR 可以做的一切都由 BR 做得更好
但是让我们看看每个人的 JavaDoc:
情监侦
公共类 InputStreamReader 扩展 Reader
InputStreamReader 是从字节流到字符流的桥梁:
BR
从字符输入流中读取文本,缓冲字符以便有效读取字符、数组和行。
如您所见,ISR将字节转换为字符。另一方面,BR需要字符。这就是为什么 BR 需要使用 ISR 来读取InputStream.
2)至于最初的问题,为什么不只使用 ISR。您绝对可以这样做,但为了获得性能,您需要使用 BR。您可能会问为什么不使用缓冲来实现 ISR?因为 ISR 旨在做一件事,那就是读取字节并将其转换为字符。缓冲部分移到装饰器类中,即 BR。这样做是为了能够向任何读取器添加缓冲功能,而不仅仅是 ISR。
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |