22.2 打印流(了解)
在整个IO包中,打印流(内部是BufferedWriter封装)是输出信息最方便的类,主要包括字节打印流(PrintStream)和字符打印流(PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型。如:小数、整数、字符串等。
PrintStream和PrintWriter都属于输出流,分别针对输出字节和字符。
PrintStream和PrintWriter提供了重载的print()、println()方法用于多种数据类型的输出。
PrintStream和PrintWriter不会抛出异常,用户通过检测错误状态获取错误信息。
PrintStream和PrintWriter有自动flush 功能。
22.2.1 打印流构造方法
PrintStream 字节打印流
PrintStream(OutputStream out);获得指定输出流的字节打印流对象。
PrintStream(OutputStream out, boolean auotflush);获得指定输出流的字节打印流对象。autoflush 是否自动刷新。
PrintStream(OutputStream out, boolean auotflush, String encoding);获得指定输出流的字节打印流对象。autoflush 是否自动刷新。encoding 指定字符编码。
等...
PrintWriter 字符打印流
PrintWriter(OutputStream out);获得指定输出流的字符打印流对象。
PrintWriter(OutputStream out, boolean autoflush);获得指定输出流的字符打印流对象。autoflush 是否自动刷新。
PrintWriter(Writer out);获得指定字符输出流的字符打印流对象。
PrintWriter(Writer out, boolean autoflush);获得指定字符输出流的字符打印流对象。autoflush 是否自动刷新。
等...
22.2.2 打印流的常用操作:print(), println()
print();不带换行的打印输出。
try { File file = new File("test.txt"); FileOutputStream fos = new FileOutputStream(file); PrintWriter ps = new PrintWriter(fos,true); ps.print("天青色等烟雨,"); ps.print("而我在等你。"); ps.print("炊烟袅袅升起,"); ps.print("晕开了结局。"); ps.close(); }...
效果:
println();每打印出一行数据后,执行换行。
try { File file = new File("test.txt"); FileOutputStream fos = new FileOutputStream(file); PrintWriter ps = new PrintWriter(fos,true); ps.println("天青色等烟雨,"); ps.println("而我在等你。"); ps.println("炊烟袅袅升起,"); ps.println("晕开了结局。"); ps.close(); }...
效果:
笔记(注意): 查看源码分析这几个类 1.Scanner 2.System.in/out/err:实际上针对控制台而不是磁盘操作的字节流 public final static InputStream in = null; //System.in :in实际上是字节输入流 public final static PrintStream out = null; // System.out :out实际上是字节输出流 public final static PrintStream err = null; //System.err :err实际上是字节输出流 3.从控制台输出: System.out.println("好好学习天天向上!"); //System.out.close(); PrintStream ps = new PrintStream(new FileOutputStream(FileDescriptor.out)); ps.println("好好学习天天向上!"); //ps.close();//此处流关闭,则FileDescriptor.out会关闭,则下面的无法输出打印 PrintWriter pw = new PrintWriter(new FileWriter(FileDescriptor.out)); pw.println("好好学习天天向上!"); //pw.close(); //(第二个方式和第三个方式一起使用则只有一个可以打印,若第一个和其它的混用的时候注意不能随便关闭流,否则会出现后面的不打印的效果,可以测试。) 4.从控制台输入: //System.out.println("请输入:"); Scanner scan = new Scanner(System.in); scan.next(); //scan.close(); //System.out.println("请输入:"); Scanner scan1 = new Scanner(new FileInputStream(FileDescriptor.in)); scan1.next(); //scan1.close();