Java---IO流打印流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33621967/article/details/60323683

这里写图片描述

package cn.hncu.io.print;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;

/*
 * ★打印流的特点:
 * 1)只有输出没有输入。PrintStream是字节打印流,PrintWriter是字符打印流。
 2)能够方便地打印各种数据“值表示形式”,提供了一系列的打印功能(只有它有,其它流都没有。)
 3)和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。
 4)可创建具有自动刷新的功能,可使用带换行符的println()方法。
 5)(在构造方法中)可以指定字符集编码的。

 * 
 */
public class PrintXXX {
    public static void main(String[] args) {
        // 打印流--PrintStream和PrintWriter

        //字节打印流演示案例---字节流不需要进行刷新操作
        //printStreamDemo();
        //printWriteDemo();
        autoFlushPrintXXXDemo();
    }

    private static void autoFlushPrintXXXDemo() {
        //autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区。---其实是因为这几个方法中帮我们调用了out.flush()。
        PrintWriter out = null;
        try {
            out = new PrintWriter(new FileOutputStream("files/autoFlush.txt",true));
            //out.print("这个不自动刷新吗...");
            out.println("这个自动刷新吗...");
            //out.flush();
            //out.printf(format, args);//这两个参数好像有点麻烦就不演示了
            //out.pr
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally{
            //out.close();
        }
    }

    private static void printWriteDemo() {
        PrintWriter out = null;
        try {
            out = new PrintWriter("files/printWrite.txt");
            //下面两个方法的功能跟字节的功能相同
            out.write("需要进行刷新吗...");
            out.write(97);
            out.write("\r\n");//回车换行,单独写进换行是不行的!!!
            out.print("\r\n");//两个都行
            out.write(353);

            out.print(353);//理解"值表示形式!!!"
            //但是为了保险在进行一次刷流更好啊!!
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally{
            out.close();//关流操作顺带刷流功能!!!
        }

    }

    private static void printStreamDemo() {
        PrintStream out = null;
        try {
            out = new PrintStream(new File("files/printStream.txt"));
            out.write(97);//01100001--调用write()方法,虽然参数为写进一个整数,但是写到文件中存放的是字符!!!,且为最后一个字节的字符表现形式
            out.write(353);//00000001 01100001

            out.print(353);//调用print方法输出的是"值表示形式!!!"这点要特别注意:353存放的是三个字符'3','5','3'
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            out.close();//和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。
            //其他流在进行关流的操作时会抛出IOException异常!!!这点注意!!!
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_33621967/article/details/60323683