buffered stream 是对unbuffered stream的封装,从而减少读写的操作,提高程序的效率,由上图可以看出,buffered stream 可以分为 字节流和字符流两种,用来封装字节流的buffered stream 类为:BufferedInputstream,BufferedOutputStream 其构造方法为:BufferedInputstream(InputStream in),BufferedOutputStream (OutPutStream out). 这两个类对应的常用方法分别是read() 和 write(int c).
用来封装字符流的buffered stream类为: BufferedReader 和 BufferedWriter 其构造方法:BufferedReader(Reader read), BufferedWriter(Writer write) 常用的方法为readLine() 和writer(String s).
代码示例:
package io.bufferedstream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * * @author PENGGR * * Buffered Stream * 1.buffered for byte stream: BufferedInputStream,BufferedOutputStream * 2.buffered for character stream: BufferedReader, BufferedWriter * * Why buffered? performance improving. */ public class CopyBufferedStream { public static void main(String[] args) { BufferedInputStream inputStream = null; BufferedOutputStream outputStream = null; BufferedReader inputStream2 = null; BufferedWriter outputStream2 = null; try { inputStream = new BufferedInputStream(new FileInputStream("D:\\360云盘\\javase\\src\\io\\xanadu.txt")); outputStream = new BufferedOutputStream(new FileOutputStream( "D:\\360云盘\\javase\\src\\io\\bufferedStreamOut.txt")); int c; while ((c = inputStream.read()) != -1) { // outputStream.write(l); outputStream.write(c); } inputStream2 = new BufferedReader(new FileReader("D:\\360云盘\\javase\\src\\io\\xanadu.txt")); outputStream2 = new BufferedWriter(new FileWriter("D:\\360云盘\\javase\\src\\io\\bufferedStreamOut2.txt")); String l; while ((l = inputStream2.readLine()) != null) { outputStream2.write(l); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } if (outputStream2 != null) { outputStream2.close(); } if (inputStream2 != null) { inputStream2.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
相关推荐
通过学习和理解这些知识点,初学者能够熟练地使用Java I/O流进行各种数据操作,无论是简单的文件读写,还是复杂的网络数据交换,都能游刃有余。在实际编程中,根据需求选择合适的流类型和组合,能有效地提升程序的...
在Java I/O中,还有缓冲流(Buffered Streams)和装饰器模式的应用。例如,`BufferedReader`和`BufferedWriter`通过在实际读写操作之前存储数据,提高了读写性能。装饰器模式则允许在不改变原有类结构的基础上,动态...
**什么是缓存I/O (Buffered I/O)?** 缓存I/O是大多数文件系统的默认I/O操作模式。在这种模式下,操作系统会利用其内核缓冲区来缓存I/O数据,具体过程如下: - **数据读取**:当应用程序尝试读取数据时,数据首先被...
BufferedReader FileInputStream FileReader java序列化 java I/O流操作
Java中的I/O流分为四类:字节流(Byte Streams)和字符流(Character Streams),以及节点流(Stream Nodes)和处理流(Stream Filters)。在学习输入/输出流时,了解这些分类及其用途至关重要。 1. **字节流和字符...
【Java IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助...这19页的学习笔记将是你掌握Java IO操作的重要参考资料。
### Java I/O 知识点概述 #### 一、Java I/O 概念与基础知识 - **流(Stream)的概念**:Java 的所有输入输出(I/O)设施都是基于流的...通过这些知识点的学习,开发者能够更加熟练地使用 Java 进行各种 I/O 相关的操作。
这些类在内部维护了一个缓冲区,可以减少实际的物理I/O次数。 五、转换流(Wrapper Stream) 字符流与字节流之间可以通过转换流进行互转。`InputStreamReader`和`OutputStreamWriter`就是这样的转换流,它们分别将...
TMS320VC5501/5502/5503/5507/5509/5510 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide
在IT领域,尤其是在系统编程和应用开发中,文件I/O(输入/输出)是一个至关重要的环节。本示例探讨的是“带缓存的文件I/O”技术,它涉及到C++编程,使用Visual Studio 2013开发环境,并且特别关注了在Windows操作...
本文旨在为新手提供一个全面的Java I/O教程,帮助读者理解Java I/O的基本概念、架构以及如何使用这些API。 #### 二、Java I/O概述 Java中的I/O系统设计得非常灵活且强大,它将所有类型的输入/输出抽象成“流”的...
在本实验中,"南邮Java课程实验-综合图形界面程序设计-小应用程序设计",学生将深入学习如何使用Java语言构建具有图形用户界面(GUI)的小应用程序。这个实验涵盖了多个重要的Java编程概念和技术,包括Java Swing库...
Stream are concrete implementations, providing direct access to the underlying operating system's file I/O facilities. These classes are used for binary input and output, where data is read and ...
// F35x_ADC0_Buffered.c //----------------------------------------------------------------------------- // Copyright 2004 Silicon Laboratories, Inc. // // AUTH: BD / PC / BW // LMOD: BW 15 JUL 2004 //...
6. **输入输出流**:Java的I/O流处理涵盖了文件读写、网络通信、数据转换等多个方面。掌握InputStream、OutputStream、Reader、Writer等基本流,以及File、Buffered、Print、Scanner等实用类。 7. **多线程**:Java...
2. **缓冲流(Buffered Stream)**:为了提高效率,Java提供了缓冲流,如`BufferedInputStream`(`J_BufferedInputStream.java`)。这些类会在内部创建一个缓冲区,允许批量读取或写入数据,减少与底层系统的交互...
6. **NIO(New IO)**: Java 1.4引入了NIO,它提供了一种非阻塞的I/O模型,适用于高并发和大数据处理。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。 **Java 高级特性** 这部分教程...
这些API支持各种I/O操作模式,包括缓冲I/O(Buffered I/O)、直接I/O(Direct I/O)、异步I/O(Asynchronous I/O)等,它们是驱动程序与硬件通信的基础。 在WDM(Windows Driver Model)驱动模型中,每个驱动都有一...
Java的I/O流用于读写文件、网络数据等。分为字节流(InputStream和OutputStream)和字符流(Reader和Writer),还有更高级的Buffered流、File流和对象序列化流等。 七、多线程 Java内置了对多线程的支持,可以通过...