打印流(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、收集异常的日志信息到指定文件。
public class Demo6 { public static void main(String[] args) throws IOException {
//打印流可以打印任何类型的数据,而且打印数据之前都会先把数据转换成字符串再进行打印。
File file = new File("F:\\a.txt");
//创建一个打印流
PrintStream printStream = new PrintStream(file);
/*
printStream.println(97);
printStream.println(3.14);
printStream.println('a');
printStream.println(true);
Animal a = new Animal("老鼠", "黑色");
printStream.println(a); //默认标准的输出流就是向控制台输出的,
System.setOut(printStream); //重新设置了标准的输出流对象
System.out.println("哈哈,猜猜我在哪里!!");
*/ //收集异常的日志信息。
File logFile = new File("F:\\2015年1月8日.log");
PrintStream logPrintStream = new PrintStream( new FileOutputStream(logFile,true) );
try{
int c = 4/0;
System.out.println("c="+c);
int[] arr = null;
System.out.println(arr.length);
}catch(Exception e){
e.printStackTrace(logPrintStream);
}
}
}