Buffered缓冲流

Posted qiudajiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buffered缓冲流相关的知识,希望对你有一定的参考价值。

Buffered缓冲流

示例代码:

/**
 * 缓冲流的使用
 * 1.缓冲流
 * BufferedInputStream
 * BufferedOutputStream
 * BufferedReader
 * BufferedWriter
 *
 * 2。作用:提高读取和写入的速度
 *  提高速度的原因:内部提供了一个缓冲区
 *
 * 3. 处理流就是套接在已有的流的基础上
 */
public class BufferedTest {
  /*
  实现非文本文件的复制
   */
  public static void main(String[] args) {
    BufferedInputStream bufferedInputStream = null;
    BufferedOutputStream bufferedOutputStream = null;
    try {
      //1.造文件
      File src = new File("基础语法\沙滩.jpg");
      //System.out.println(src.getAbsolutePath());
      File dest = new File("基础语法\沙滩3.jpg");
      //2.造流
      //2.1 节点流
      FileInputStream fileInputStream = new FileInputStream(src);
      FileOutputStream fileOutputStream = new FileOutputStream(dest);
      //2.2处理流(缓冲流)
      bufferedInputStream = new BufferedInputStream(fileInputStream);
      bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
      //3.复制的细节  读取 写入
      byte[] buffer = new byte[10];
      int  len;
      while ((len = bufferedInputStream.read(buffer)) != -1){
        bufferedOutputStream.write(buffer,0,len);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if (bufferedOutputStream != null)
          bufferedOutputStream.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
      try {
        if (bufferedInputStream != null)
          bufferedInputStream.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    //4.资源关闭
    //要求:先关闭外层流 再关闭内层流
    //说明:在关闭外层流时,内层流会自动关闭  内层流的关闭可以省略
//    fileInputStream.close();
//    fileOutputStream.close();
  }
}
/**
 * 缓冲流的使用
 * 1.缓冲流
 * BufferedInputStream
 * BufferedOutputStream
 * BufferedReader
 * BufferedWriter
 *
 * 2。作用:提高读取和写入的速度
 *  提高速度的原因:内部提供了一个缓冲区
 *
 * 3. 处理流就是套接在已有的流的基础上
 */
public class BufferedTest {
  /*
  实现文本文件的复制
   */
  public static void main(String[] args) {
    BufferedReader bufferedReader = null;
    BufferedWriter bufferedWriter = null;
    try {
      //创建文件和对应的流
      bufferedReader = new BufferedReader(new FileReader(new File("基础语法\a.txt")));
      bufferedWriter = new BufferedWriter(new FileWriter(new File("基础语法\d.txt")));
      //读写文件
//      //方式一
//      char[] buffer = new char[1024];
//      int len;
//      while ((len = bufferedReader.read(buffer)) != -1){
//        bufferedWriter.write(buffer,0,len);
      //方式二
      String data;
      while ((data = bufferedReader.readLine()) != null){
        //方法一
//        bufferedWriter.write(data+ "
"); //data中不包含换行符  只有一行
        //方法二
        bufferedWriter.write(data);//data中不包含换行符
        bufferedWriter.newLine();  //提供换行操作
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      //关闭资源
      try {
        if (bufferedReader!= null)
        bufferedReader.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
      try {
        if (bufferedWriter != null)
        bufferedWriter.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

以上是关于Buffered缓冲流的主要内容,如果未能解决你的问题,请参考以下文章

缓冲流如何工作?

Stream,Reader/Writer,Buffered的区别

java IO教程《三》

JAVA基础 IO流三 功能流?

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

IO流01_字节字符流缓冲流标准输入输出流打印流