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 IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助...这19页的学习笔记将是你掌握Java IO操作的重要参考资料。
Java的I/O流处理涵盖了文件读写、网络通信等场景。流分为字节流(Byte Stream)和字符流(Character Stream),又有输入流(InputStream/Reader)和输出流(OutputStream/Writer)。缓冲流(Buffered Stream)用于...
File file2 = new File("D:\\计算机学习\\java\\尚硅谷课件笔记源码资料"); ``` File对象提供了很多方法,如`exists()`用于检查文件或目录是否存在,`isDirectory()`用于判断是否为目录,`mkdir()`和`mkdirs()`分别...
三、缓冲流(Buffered Stream) 为了提高读写效率,Java提供了带缓冲功能的流,如BufferedInputStream和BufferedReader。它们在内部维护了一个缓冲区,可以批量读写数据,减少对底层设备的频繁操作。 四、转换流( ...
包括`BufferedInputStream`、`BufferedOutputStream`、`BufferedReader`和`BufferedWriter`,这些类通过内存缓冲区提高读写性能,减少频繁的磁盘I/O操作。 5. **对象流(Object Stream)** `ObjectInputStream`和...