Java基础IO流介绍之五——什么是字符流过滤流、常用的字符过滤流有哪些

字符流的过滤流

1、字符缓冲流——BufferedReader/BufferedWriter

1、构造方法

BufferedReader(Reader in)
创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。

2、常用方法

BufferedReader: 
    String	readLine()
    读一行文字。
BufferedWriter:
    void	newLine() : 不同的操作系统 换行符不一样   
    写一行行分隔符。
//案例:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class Demo12 {
    public static void main(String[] args) throws Exception{
        //创建两个File对象
        File srcFile = new File("file/a.txt");


        //创建节点字符流
        FileReader fileReader = new FileReader(srcFile);

        //增强功能
        BufferedReader bufferedReader = new BufferedReader(fileReader);

//        String s1 = bufferedReader.readLine();
//        System.out.println(s1);
//
//        String s2 = bufferedReader.readLine();
//        System.out.println(s2);

//        String s;
//        while ((s = bufferedReader.readLine())!=null){
//            System.out.println(s);
//        }

        bufferedReader.close();

    }
}

//案例2: 

import java.io.*;

public class Demo12 {
    public static void main(String[] args) throws Exception{
        //创建两个File对象
        File srcFile = new File("file/a.txt");

        //创建字符流 节点流
        FileWriter fileWriter = new FileWriter(srcFile);

        //过滤流
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

        bufferedWriter.write("春眠不觉晓");
        bufferedWriter.newLine();
        bufferedWriter.write("处处蚊子咬");
        bufferedWriter.newLine();
        bufferedWriter.write("夜来风雨声");
        bufferedWriter.newLine();
        bufferedWriter.write("大包知多少");
        bufferedWriter.newLine();

        bufferedWriter.close();


    }
}

2、PrintWriter流

1、概述

PrintWriter介绍:
      是Writer子类,是字符流,有一个缓冲区,就涉及到一个刷新的功能。
      和PrintStream一样,也是有很多的print和println的方法,其中打印的方法也基本相同
      提供了带有自动刷新的功能,但是开启自动刷新仅仅对println()、printf()、format()方法有效

2、构造方法

方法名 说明
PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush) 通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName) 创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out) 创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush) 创建新 PrintWriter。自动刷新
//案例:

import java.awt.datatransfer.FlavorEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Demo13 {
    public static void main(String[] args) throws Exception {
       File file = new File("file/a.txt");
        //PrintWriter printWriter = new PrintWriter(file);
       FileOutputStream fileOutputStream = new FileOutputStream(file);

        PrintWriter printWriter =  new PrintWriter(fileOutputStream,true);
        //PrintWriter printWriter = new PrintWriter(System.out);

        printWriter.println("所说的发生发撒打发十分大");
    }
}

posted @ 2021-06-25 22:19  泰初  阅读(248)  评论(0编辑  收藏  举报