http://java.sun.com/docs/books/tutorial/essential/io/buffers.html
Most of the examples we've seen so far use unbuffered I/O. This means each read or write request is handled directly by the underlying OS. This can make a program much less efficient, since each such request often triggers disk access, network activity, or some other operation that is relatively expensive.
前面的代码都是未缓冲IO实现的,这就表示每次操作都要触发磁盘访问或者网络,这些操作都很昂贵。
To reduce this kind of overhead, the Java platform implements buffered I/O streams. Buffered input streams read data from a memory area known as a buffer; the native input API is called only when the buffer is empty. Similarly, buffered output streams write data to a buffer, and the native output API is called only when the buffer is full.
为了减小开支,java实现了带缓冲的流。
输入流直接从内存的一块区域得到,也就是所说的buffer
input api只在缓冲区空了以后才被调用。类似的,输出直接写入缓冲区,只有当满的时候才调用output api。
unbuffered 未缓冲的流只需要包装一下就可以成为一个带缓冲的流了。
There are four buffered stream classes used to wrap unbuffered streams:
BufferedInputStream and BufferedOutputStream create buffered
byte streams, while
BufferedReader and BufferedWriter create buffered
character streams.
Flushing Buffered Streams
It often makes sense to write out a buffer at critical points, without waiting for it to fill. This is known as flushing the buffer.
写入缓冲临界点,还未满。所谓的冲洗缓冲区
Some buffered output classes support autoflush, specified by an optional constructor argument. When autoflush is enabled, certain key events cause the buffer to be flushed. For example, an autoflush PrintWriter object flushes the buffer on every invocation of println or format. See Formatting for more on these methods.
有些类支持自动冲洗缓存。或者在构造参数里可以指定。当自动冲洗开启,某些事件会触发缓冲被冲洗。例如 PrintWriter 调用 println 或 format 。
分享到:
相关推荐
在Java中,IO流分为四类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理的是8位的数据单元,而字符流处理的是16位的Unicode字符。对于...
文中提到的文件处理(Files)、输入输出异常处理(I/O Exceptions)、安全性和安全性异常(Security and Security Exceptions)、字节流和字符...Streams)、缓冲流(Buffered Streams)、数组支持的输入输出流(Array...
此外,还有缓冲流(Buffered Streams)、转换流(InputStreamReader/OutputStreamWriter)和对象流(ObjectInputStream/ObjectOutputStream)等,用于提高性能和处理不同格式的数据。 在"README.md"文件中,可能...
3. **缓冲流(Buffered Streams)**: 在实际操作中,为了提高效率,我们通常会使用缓冲流,如BufferedInputStream和BufferedOutputStream。这些类会在内部维护一个缓冲区,批量处理字节,减少对底层I/O的频繁调用。 ...
此外,还有缓冲流(Buffered Streams)提高效率,转换流(InputStreamReader/OutputStreamWriter)用于字符编码转换,以及对象序列化流(ObjectInputStream/ObjectOutputStream)用于对象的持久化。 接着,集合框架...
- **缓冲流(Buffered Streams)**:如 `BufferedInputStream` 和 `BufferedOutputStream` 用于字节流,`BufferedReader` 和 `BufferedWriter` 用于字符流。缓冲流通过增加缓冲区来减少对硬件的访问次数,从而提高性能...
- **缓冲流(Buffered Streams)**:通过增加缓冲区来提高读写效率。 - **PushbackInputStream**:允许将已读取的字节重新推回到输入流中。 - **PrintStreams**:简化输出操作的流,可以方便地进行格式化输出。 - **多...
6. **缓冲流**:为了提高效率,Java提供了缓冲流(Buffered Streams),如`BufferedReader`和`BufferedWriter`,它们在内部维护了一个缓冲区,可以减少对底层操作系统的调用次数。 7. **打印流**:`PrintStream`类...
还有缓冲流(Buffered streams)可以提高效率,转换流(Convert streams)用于在不同类型的流之间转换,以及对象流(Object streams)用于序列化和反序列化对象。 接下来,我们关注Java中的静态块和初始化块。静态...
Buffered streams、File streams、Object streams等都是I/O流的重要组成部分。 综上所述,这份Java学习资料涵盖了从基础到高级的多个主题,包括基本语法、面向对象编程、异常处理、Applet、GUI设计、多线程以及输入...
Java I/O流分为四大类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理单个字节的数据,而字符流处理Unicode字符。对象流允许序列化和反...
Java IO库提供了各种类型的流,如字节流(Byte Streams)和字符流(Character Streams),以及缓冲流(Buffered Streams)、转换流(InputStreamReader/OutputStreamWriter)和对象流(Object Streams)等。...
3. 双向流(Buffered Streams): - BufferedReader 和 BufferedWriter 提供缓冲区,提高读写效率。 - ByteArrayOutputStream 和 ByteArrayInputStream 支持在内存中操作字节流。 4. 对象流(Object Streams): ...
4. **输入输出类的分类**:Java的I/O类按照功能可以分为输入流、输出流、过滤流(Filter streams)、缓冲流(Buffered streams)、管道流(Piped streams)等。 5. **标准流**:Java预定义了三个标准流:`System.in...
This chapter covers various I/O classes and APIs available in Java, including file handling, buffered streams, and character streams. Understanding these mechanisms is necessary for developing ...
3. **JAVA IO**:了解输入输出流(InputStream/OutputStream)、字符流(Reader/Writer)、缓冲流(Buffered streams)以及文件操作,能够实现数据的读取、写入和传输。 4. **设计模式**:设计模式是解决常见编程...
3. **缓冲流(Buffered Streams)**: - `BufferedReader` 和 `BufferedWriter` 提供了缓冲功能,提高了读写效率。`BufferedReader` 从底层的 `Reader`(如 `FileReader`)读取数据到缓冲区,然后从缓冲区读取。`...
10. **性能优化**: 通过缓冲流(Buffered streams),可以减少磁盘I/O或网络通信的次数,提高整体性能。 总的来说,PHP的流机制提供了极大的灵活性和便利性,使得开发者可以轻松地处理各种数据源,同时保持代码的...
此外,还有缓冲流(buffered streams)用于提高性能,它们会在内存中暂存数据,等到一定量的数据积累后一次性写入或读出,减少物理I/O操作的次数。 流类库的核心是iostream,其中包含了如std::ifstream(用于文件...