简介:打印流,不能读只能写,它只有输出流,打印流一般是指PrintStream(字节打印流),PrintWriter(字符打印流)两个类。
特点:
特点1:打印流只操作文件目的地,不操作数据源。
特点2:特有的写出方法可以实现,数据原样写出。(如打印97,则文件中也是97)
特点3:特有的写出方法,可以实现自动刷新,自动换行。
关于字节打印流的构造方法及其说明:
public PrintStream/File/String)OutputStream 关联字节输出流/文件/文件路径public
PrintStream(String fileName, Charset charset) 指定字符编码
public PrintStream(OutputStream out, boolean autoFlush) 自动刷新
public PrintStream(OutputStream out, boolean autoFlush, String encoding) 指定字符编码且自动刷新
字节流底层没有缓冲区,开不开自动刷新都一样。
关于字节打印流的成员方法及其说明:
public voidwrite(int b) 常规方法:规则跟之前一样,将指定的字节写出
public void println(Xxx xx) 特有方法:打印任意数据,自动刷新,自动换行
public void print(Xxx xx) 特有方法:打印任意数据,不换行
public void printf(String format, Object... args) 特有方法:带有占位符的打印语句,不换行
给出案例:
package com.zhou.myprintstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
public class PrintStreamDemo01 {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
PrintStream ps = new PrintStream(new FileOutputStream("D:\\IdeaFile\\MyIO\\DaYing.txt"),true,"UTF-8");
ps.println("天南地北双飞客");
ps.print(true);
ps.printf("%s爱上了 %s","阿珍","阿强");//%s是占位符
ps.close();
}
}
运行结果:
关于字符打印流的构造方法及其说明:
public PrintWriter(Write/File/String) 关联字节输出流/文件/文件路径
public PrintWriter(String fileName, Charset charset) 指定字符编码
public PrintWriter(Write w, boolean autoFlush) 自动刷新
public PrintWriter(OutputStream out, boolean autoFlush, Charset charset) 指定字符编码且自动刷新
字符流底层有缓冲区,想要自动刷新需要开启。
关于字符打印流的成员方法及其说明:
public void write(...) 常规方法:规则跟之前一样,写出字节或者字符串
public void println(Xxx xx) 特有方法:打印任意类型的数据并且换行
public void print(Xxx xx) 特有方法:打印任意类型的数据,不换行
public void printf(String format,Object... args) 特有方法:带有占位符的打印语句
给出案例:
package com.zhou.myprintstream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class PrintStreamDemo02 {
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter(new FileWriter("D:\\IdeaFile\\MyIO\\DaYing.txt"),true);
pw.println("满堂花醉三千客,一剑光寒十四州。");
pw.close();
}
}