1.认识两个打印流

两个打印流 PrintStreamPrintWriter
顾名思义,打印流,就是专门用来输出内容的;
所以,打印流只有输出流,而没有输入流。

1.1 PrintStream

字节打印流:可以包装一个 OutputStream、File对象 或者 文件路径。

java中PrintWriter java中printwriter用法_java

1.2 PrintWriter

字符打印流:可以包装一个 OutputStream、Writer、File或者文件路径。
【构造方法中带有 布尔类型 的参数,true 表示 println、printf、format 方法 会自动刷新缓存】
但个人不建议这样使用,使用字节流时,还是在最后手动close(),执行真正的写入操作吧。

java中PrintWriter java中printwriter用法_java-io_02

2.PrintStream使用案例

2.1 标准的输出流 System.out

标准的输出流 System.out 就是一个字节打印流。
可以使用 write() 方法;
也可以使用 print() 方法。

package com.northcastle.outputStream_;

import java.io.IOException;
import java.io.PrintStream;

/**
 * author : northcastle
 * createTime:2022/1/9
 * 打印流 : PrintStream 【字节打印流】
 */
public class ApplicationPrintStream {
    public static void main(String[] args) throws IOException {
        PrintStream out = System.out; // System.out 就是一个自己打印流
        out.print(100);
        out.println("hello,我是字节打印流 PrintStream "); // println() 方法就是调用了write方法
        out.write("大家好".getBytes());
        out.close();
    }
}

运行结果如下:正常打印程序中的内容

java中PrintWriter java中printwriter用法_PrintStream_03

2.2 包装OutputStream对象

下面的代码,直接使用 throws 的方式抛出了异常,可以方便阅读整体的流程。
【不过各位读者可以根据自己的实际情况选择性的使用 try-catch 来捕获和处理异常】

package com.northcastle.outputStream_;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

/**
 * author : northcastle
 * createTime:2022/1/9
 * 打印流 : PrintStream 【字节打印流】
 */
public class ApplicationPrintStream {
    public static void main(String[] args) throws IOException {
    
         //1.声明一个文件路径
         String filePath = "D:\\EDailyRoutine\\java-io-test\\PrintStream02.data";
         //2.实例化一个 FileOutputStream 对象
         FileOutputStream fos = new FileOutputStream(filePath);
         //3.包装 OutputStream 对象,实例化一个 PrintStream 对象
         PrintStream printStream = new PrintStream(fos);
         //4.开始输出内容
         printStream.write("我是printStram对象,哈哈哈".getBytes());
         printStream.println();
         printStream.println("使用println方法打印内容");
         //5.关闭流
         printStream.close();
    }
}

运行结果:内容输出正常

java中PrintWriter java中printwriter用法_PrintStream_04

3.PrintStream使用案例

注意 : 使用字节打印流时,建议在最后都要执行一边 close() 方法,将写出的内容真正写入到文件中。

3.1 直接指定文件路径打印输出

package com.northcastle.writer_;

import java.io.FileNotFoundException;
import java.io.PrintWriter;

/**
 * author : northcastle
 * createTime:2022/1/9
 * 打印流 : PrintWriter 【字符打印流】
 */
public class ApplicationPrintWriter {
    public static void main(String[] args) throws FileNotFoundException {

        String filePath = "D:\\EDailyRoutine\\java-io-test\\PrintWriter01.data";
        PrintWriter printWriter = new PrintWriter(filePath);
        printWriter.println("我来使用一下【PrinterWriter对象】这个打印流到文件");
        printWriter.write("我是write方法来写的");
        printWriter.close(); // 必须是在关闭流的时候,才能真正将内容写入到文件中
    }
}

运行结果:内容正常输出

java中PrintWriter java中printwriter用法_java-io_05

3.2 包装OutputStream对象打印输出

package com.northcastle.writer_;

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

/**
 * author : northcastle
 * createTime:2022/1/9
 * 打印流 : PrintWriter 【字符打印流】
 */
public class ApplicationPrintWriter {
    public static void main(String[] args) throws FileNotFoundException {
     
        /**
         * 二 : 包装一个 OutputStream 对象进行输出
         */
        String filePath02 = "D:\\EDailyRoutine\\java-io-test\\PrintWriter02.data";
        FileOutputStream fos = new FileOutputStream(filePath02);
        PrintWriter printWriter1 = new PrintWriter(fos);
        printWriter1.println("包装一个 OutputStream 对象进行输出");
        printWriter1.write("hello 哈哈哈");
        printWriter1.close();// 必须是在关闭流的时候,才能真正将内容写入到文件中
    }
}

运行结果:内容正常输出

java中PrintWriter java中printwriter用法_java_06

3.3 包装Writer对象打印输出

package com.northcastle.writer_;

import java.io.*;

/**
 * author : northcastle
 * createTime:2022/1/9
 * 打印流 : PrintWriter 【字符打印流】
 */
public class ApplicationPrintWriter {
    public static void main(String[] args) throws IOException {

        /**
         * 三 : 包装一个 Writer 对象进行输出
         */

        String filePath03 = "D:\\EDailyRoutine\\java-io-test\\PrintWriter03.data";
        FileWriter fw = new FileWriter(filePath03);
        PrintWriter printWriter2 = new PrintWriter(fw);
        printWriter2.println("包装一个 Writer 对象进行输出");
        printWriter2.write("欢迎来到 PrintWriter 打印流");
        printWriter2.close();// 必须是在关闭流的时候,才能真正将内容写入到文件中

    }
}

运行结果:内容正常输出

java中PrintWriter java中printwriter用法_java中PrintWriter_07

4.完成

Congratulations!
You are one step closer to success!