1.认识两个打印流
两个打印流
PrintStream
和PrintWriter
。
顾名思义,打印流,就是专门用来输出内容的;
所以,打印流只有输出流
,而没有输入流。
1.1 PrintStream
字节打印流:可以包装一个 OutputStream、File对象 或者 文件路径。
1.2 PrintWriter
字符打印流:可以包装一个 OutputStream、Writer、File或者文件路径。
【构造方法中带有 布尔类型 的参数,true 表示 println、printf、format 方法 会自动刷新缓存】
但个人不建议这样使用,使用字节流时,还是在最后手动close(),执行真正的写入操作吧。
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();
}
}
运行结果如下:正常打印程序中的内容
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();
}
}
运行结果:内容输出正常
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(); // 必须是在关闭流的时候,才能真正将内容写入到文件中
}
}
运行结果:内容正常输出
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();// 必须是在关闭流的时候,才能真正将内容写入到文件中
}
}
运行结果:内容正常输出
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();// 必须是在关闭流的时候,才能真正将内容写入到文件中
}
}
运行结果:内容正常输出
4.完成
Congratulations!
You are one step closer to success!