打印流常用方法以及应用场景
1.打印流是什么?
可以实现更方便、更高效地写数据,分为字节打印流PrintStream和字符打印流PrintWriter,使用方便,性能高效,底层封装了高效流
- 字节打印流PrintStream:继承OutputStream,因此支持写字节的相关方法
- 字符打印流PrintWriter:继承Writer,因此支持写字符的相关方法
2.PrintStream常用方法
-
public PrintStream(OutputStream/File/String):建对象并关联文件
-
public void println(内容):打印任意类型数据
注意:要将数据追加写入到文件,先要封装原始流对象,才可以追加写入
public class Demo01 {public static void main(String[] args) throws Exception {//public PrintStream(OutputStream/File/String); 建对象并关联文件PrintStream ps = new PrintStream("day10\\Demo01.txt");//封装原始流对象,追加写入PrintStream ps1 = new PrintStream(new FileOutputStream("day10\\Demo01-1.txt",true));//public void println(内容); 写任意类型数据ps.println(100);ps.println(3.14);ps.println('哈');ps.println("郝佳乐");ps.println(true);//释放资源ps.close();} }
其他方法
- public PrintStream (String fileName, Charset charset); 可以指定写出去的字符编码(写中文时)
- public PrintStream (OutputStream out, boolean autoFlush); 可以指定实现自动刷新
- public PrintStream (OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
- public void write(int/byte[]/byte[]一部分); 可以支持写字节数据出去
3.PrintWriter常用方法
-
public PrintWriter(OutputStream/Writer/File/String):创建对象并关联对象
-
public void println(内容):打印任意类型数据
public class Demo02 {public static void main(String[] args) throws IOException {//public PrintWriter(OutputStream/Writer/File/String); 创建对象并关联文件PrintWriter pw = new PrintWriter("day10\\Demo02.txt"); //注意事项:封装原始流,才能通过构造开启追加写入//PrintWriter pw = new PrintWriter(new FileWriter("day10\\Demo02.txt",true));//public void println(内容); 写任意类型数据pw.println(100);pw.println(3.14);pw.println('哈');pw.println("郝佳乐");pw.println(true);//释放资源pw.close();} }
其他方法
- public PrintWriter(String fileName, String encoding); 可以指定写出去的字符编码(写中文时)
- public PrintWriter(OutputStream out/Writer, boolean autoFlush); 可以指定实现自动刷新
- public PrintWriter(OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
- public void write(int/String/char[]/…); 可以支持写字符数据出去
4.打印流应用
输出语句的重定向(指定打印数据的目的地),前面的代码目的地是控制台,如果项目上线就看不到了,可以使用打印流,指定打印目的地,实现输出语句的重定向
- public static final PrintStream out=null; out本质上是一个PrintStream,初始化值null表示将数据打印到控制台
- System.setOut(new PrintStream(“路径”)) 借助System的setOut修改out的值为指定文件路径
public class Demo01 {public static void main(String[] args) throws Exception {//打印在控制台System.out.println("床前明月光");System.out.println("疑是地上霜");//输出语句重定向System.setOut(new PrintStream("day10\\Demo01.txt"));//打印在指定路径的文件中System.out.println("举头望明月");//在文件中显示System.out.println("低头思故乡");//在文件中显示}
}