打印流(PrintStream和PrintWriter) 打印流可以打印任意类型的数据,而且打印数据之前都会先把数据转换成字符串再进行打印。
PrintStream:打印字节流。System.out对应的类型就是PrintStream。
print 方法和write方法的却别在于,print提供自动刷新。
常用方法:
1、构造方法
PrintStream(File file)
创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(String fileName)
创建具有指定文件名称且不带自动行刷新的新打印流。
PrintStream(OutputStream out)
创建新的打印流。2、打印方法:
void print(数据类型 变量)
打印变量的值。 如果打印自定义对象,打印出来的内容是toString方法中返回的字符串。
PrintWriter:打印字符流。
常用方法
1、构造方法
PrintWriter(File file)
使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out)
根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
2、打印方法:
void print(数据类型 变量)
打印变量的值。 如果打印自定义对象,打印出来的内容是toString方法中返回的字符串。
应用场景:
1、把控制台的信息输出到指定的文件中。
2、收集异常的日志信息到指定文件。
1 public class Demo6 { 2 3 public static void main(String[] args) throws IOException { 4 //打印流可以打印任何类型的数据,而且打印数据之前都会先把数据转换成字符串再进行打印。 5 File file = new File("F:\a.txt"); 6 //创建一个打印流 7 PrintStream printStream = new PrintStream(file); 8 /* 9 printStream.println(97); 10 printStream.println(3.14); 11 printStream.println('a'); 12 printStream.println(true); 13 Animal a = new Animal("老鼠", "黑色"); 14 printStream.println(a); 15 16 17 //默认标准的输出流就是向控制台输出的, 18 System.setOut(printStream); //重新设置了标准的输出流对象 19 System.out.println("哈哈,猜猜我在哪里!!"); 20 */ 21 22 //收集异常的日志信息。 23 File logFile = new File("F:\2015年1月8日.log"); 24 PrintStream logPrintStream = new PrintStream( new FileOutputStream(logFile,true) ); 25 try{ 26 int c = 4/0; 27 System.out.println("c="+c); 28 int[] arr = null; 29 System.out.println(arr.length); 30 }catch(Exception e){ 31 e.printStackTrace(logPrintStream); 32 } 33 } 34 }