PrintWriter打印流实例

好记性不如赖笔头…………

注意:
PrintWriter只有输出写入功能,而没有读取功能
PrintWriter 是字符输出,PrintStream 是字符输出
PrintWriter的底层还是由BufferedWriter、BufferedStreamWriter实现的。

package com.Ckinghan.ioDemo;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class PrintStreamDemo {

    /**
     * @描述:打印流
     * @创建时间:
     */
    public static void main(String[] args) {
        /**
         * 使用打印流写入到文件
         */
        printWriter();

        /**
         * 使用自动刷新的打印流写入到文件
         */
        printWriterAutoFlsh();

        /**
         * 读取文件内容,使用PrintWriter打印到控制台
         */
        readWriterController();
    }

    /**
     * @描述:读取文件内容,使用PrintWriter打印到控制台
     * @创建时间:
     */
    public static void readWriterController(){
        BufferedReader bufferedReader = null;
        PrintWriter printWriter = null;
        try {
            bufferedReader = new BufferedReader(new FileReader("PrintStreamAuto.JAVA"));
            /**
             * 实例化printWriter打印对象,并开启自动刷新功能
             */
            printWriter = new PrintWriter(System.out,true);

            String readerString = null;
            while ((readerString = bufferedReader.readLine()) != null) {
                /**
                 * 将数据输出到控制台
                 * 
                 * 因为开启了自动刷新功能,所以println相当于以下执行了以下方法
                 *      printWriter.write(String string);   //写入字符
                 *          printWriter.newLine();                  //换行
                 *      printWriter.flsh();                             //清空缓存
                 */
                printWriter.println(readerString);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * @描述:使用自动刷新的打印流写入到文件
     * @创建时间:
     */
    public static void printWriterAutoFlsh(){
        //创建打印流对象
        PrintWriter printWriter = null;
        try {
            /**
             * 注意,PrintWriter(new Writer,boolean AutoFlsh) 可以设置是否可以自动刷新缓冲区数据
             * 如果每个参数为String类型,它是没有boolean AutoFlsh参数的,这点要注意
             */
            printWriter = new PrintWriter(new FileWriter("PrintStreamAuto.JAVA"),true);
            /**
             * 将数据写入到文件
             * 
             * 因为开启了自动刷新功能,所以println相当于以下执行了以下方法
             *      printWriter.write(String string);   //写入字符
             *          printWriter.newLine();                  //换行
             *      printWriter.flsh();                             //清空缓存
             */
            printWriter.println("我开启了PrintWriter的自动缓冲刷新功能");
            printWriter.println("我将要被写入到文件中,等待被读取");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            //关闭流
            if(printWriter != null){
                printWriter.close();
            }
        }
    }


    /**
     * @描述:使用打印流写入到文件
     * @创建时间:
     */
    public static void printWriter(){
        //创建打印流对象
        PrintWriter printWriter = null;
        try {
            //实例化打印流对象 
            printWriter = new PrintWriter("PrintStream.JAVA");
            //将数据写入到文件
            printWriter.println("呈中哦违反塑料科技的法律塉废旧塑料大家法律是否觉得");
            //清空缓冲区数据
            printWriter.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            //关闭流
            if(printWriter != null){
                printWriter.close();
            }
        }
    }

}

---------------------------------------------------------------------执行结果---------------------------------------------------------------------

我开启了PrintWriter的自动缓冲刷新功能
我将要被写入到文件中,等待被读取
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值