- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我刚刚了解了使用 BufferedReader
的输入/输出。
我想知道Stream
和Buffer
这两个词到底是什么意思?
这行代码还有什么作用:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
最佳答案
Java 有两种用于输入和输出 (I/O) 的类:streams 和 readers/writers。
流(InputStream
、OutputStream
以及扩展这些的所有内容)用于从文件、网络或任何其他设备读取和写入二进制数据。
Readers 和 writers 用于读取和写入文本(字符)。它们是流之上的一层,使用 character encoding 将二进制数据(字节)转换为字符并返回。 .
从磁盘逐字节读取数据效率非常低。加快速度的一种方法是使用缓冲区:不是一次读取一个字节,而是一次读取几千个字节,然后将它们放在内存中的缓冲区中。然后你就可以一个一个的查看缓冲区中的字节了。
Oracle 的 Java 教程 about I/O详细解释一下。
查看您提供的代码行:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.in
是一个 InputStream
。您创建一个 InputStreamReader
,它从 System.in
读取字节。然后将其包装在 BufferedReader
中。
所以,最后,您有一个 BufferedReader
,它从一个 InputStreamReader
读取,该 InputStreamReader
读取自 System.in
。
关于java - "Stream"和 "Buffer"在 Java I/O 中究竟是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984789/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!