zoukankan      html  css  js  c++  java
  • IO流学习之字符流(三)

    IO流之字符流缓冲区:

    概念:

    流中的缓冲区:是先把程序需要操作的数据保存在内存中,然后我们的程序读写数据的时候,不直接和持久设备之间交互,而改成和内存中的数据进行交互。

    缓冲区:它就是临时存储数据,当我们需要操作数据的时候,直接不是面对的是真实保存数据的终端,而是已经把数据缓存起来的那个容器。

    字符流缓冲区:是为了高效而设计的。内部维护了一个数组,真正的读写依赖的普通的字符流。

    1、BufferedReader类:

    常用方法:

     字符流缓冲区输入数据步骤:

    • 指定文件位置
    • 创建字符流输入对象
    • 创建缓存区对象
    • 调用方法进行读取数据
    • 关闭资源

    代码案例:

    代码:

     1 package InputOutput;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.FileReader;
     5 import java.io.IOException;
     6 
     7 public class BufferedReaderDemo {
     8     public static void main(String[] args) throws IOException {
     9         // 指定文件路径
    10         String path = "E:\JavaCodeDemo\InputOutput\filewriter\BufferedReader.txt";
    11         // 创建字符输入流
    12         FileReader reader = new FileReader(path);
    13         // 创建字符输入流缓冲区
    14         BufferedReader rb = new BufferedReader(reader);
    15         String flag = null;
    16         // readLine一行一行读取文件
    17         while ((flag = rb.readLine()) != null) {
    18             System.out.println(flag);
    19         }
    20         rb.close();
    21         // 流程成功输出Success
    22         System.out.println("Success");
    23     }
    24 }

    重要方法:ReadLine()

    2、BufferedWriter类

     常用方法:

    代码案例:

    代码:

     1 package InputOutput;
     2 
     3 import java.io.BufferedWriter;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 public class BufferedWriterDemo {
     8     public static void main(String[] args) throws IOException {
     9         // 指定文件位置
    10         String path = "E:\JavaCodeDemo\InputOutput\filewriter\BufferedWriter.txt";
    11         // 创建字符输出流
    12         FileWriter writer = new FileWriter(path);
    13         // 创建字符输出流缓冲区
    14         BufferedWriter bw = new BufferedWriter(writer);
    15         // 写入
    16         for (int i = 0; i < 4; i++) {
    17             bw.write("test :" + i);
    18             //newLine()实现换行
    19             bw.newLine();
    20         }
    21         //关闭资源
    22         bw.flush();
    23         bw.close();
    24         // 流程成功输出Success
    25         System.out.println("Success");
    26     }
    27 }

     3、字符流缓冲区实现文档复制:

    代码案例:

     1 package InputOutput;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.FileReader;
     6 import java.io.FileWriter;
     7 import java.io.IOException;
     8 
     9 //字符输入流和输出流缓冲区实现复制文件
    10 public class BufferReaderWriter {
    11     public static void main(String[] args) throws IOException {
    12         // 指定输入流文件位置
    13         String path1 = "E:\JavaCodeDemo\InputOutput\filewriter\BufferedReaderCopy.txt";
    14         // 指定输出流文件位置
    15         String path2 = "E:\JavaCodeDemo\InputOutput\filewriter\BufferedWriterCopy.txt";
    16         // 创建字符输入流
    17         FileReader reader = new FileReader(path1);
    18         // 创建字符输出流
    19         FileWriter writer = new FileWriter(path2);
    20         // 想追加写入就加上true
    21         // FileWriter writer = new FileWriter(path2,true);
    22         // 创建输入缓冲区
    23         BufferedReader br = new BufferedReader(reader);
    24         // 创建输出缓冲区
    25         BufferedWriter bw = new BufferedWriter(writer);
    26         String flag = null;
    27         while ((flag = br.readLine()) != null) {
    28             bw.write(flag);
    29             bw.newLine();
    30             bw.flush();
    31         }
    32         // 关闭资源
    33         bw.close();
    34         br.close();
    35         // 流程成功输出Success
    36         System.out.println("Success");
    37     }
    38 }

    注意:因为缓冲区的Close方法会自动调用字符流的Close方法,因此最后关闭资源只需要关闭缓冲区的Close()方法即可!



  • 相关阅读:
    C# 基于正则表达式的字符串验证
    Matlab 曲线绘制之线型和颜色 示例
    色彩学基础知识
    Matlab 常用绘图指令(二维图形)
    让机器教人学习更有效:Becoming the Expert
    基于直接最小二乘的椭圆拟合(Direct Least Squares Fitting of Ellipses)
    一维最大熵二值化方法
    基于模板的全自动目标检测跟踪系统的设想
    纽扣检测及其旋转角度
    指针式压力表自动读数:Auto Read the Value of Manometer
  • 原文地址:https://www.cnblogs.com/Bernard94/p/11256806.html
Copyright © 2011-2022 走看看