1. 程式人生 > 其它 >Java基礎IO流介紹之五——什麼是字元流過濾流、常用的字元過濾流有哪些

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("所說的發生發撒打發十分大");
    }
}