JAVA中常用IO流类: PrintStream和PrintWriter

时间:2021-05-20 21:32:27

PrintStream

PrintStream在OutputStream基础之上提供了增强的功能,即可以方便地输出各种类型的数据(而不仅限于byte型)的格式化表示形式。PrintStream的方法从不抛出IOEceptin

 

PrintWriter

PrintWriter提供了PrintStream的所有打印方法,其方法也从不抛出IOException。

与PrintStream的区别:作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream类型的字节流,还能够封装Writer类型的字符输出流并增强其功能。

 

实例:复制文件。

[java]  view plain  copy
  1. import java.io.*;  
  2. class IODemo  
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         try  
  7.         {  
  8.         FileReader fr=new FileReader("a.txt");  
  9.         BufferedReader br=new BufferedReader(fr);  
  10.         FileWriter fw=new FileWriter("33.txt");  
  11.         PrintWriter pw=new PrintWriter(fw);  
  12.   
  13.         String s=br.readLine();  
  14.             while(null!=s)  
  15.             {  
  16.                 //PrintWriter的println方法 相当于  
  17.                 //BufferedWriter 的write() + newLine()  
  18.                 pw.println(s);  
  19.                 s=br.readLine();  
  20.             }  
  21.   
  22.             br.close();  
  23.             pw.close();  
  24.         }  
  25.         catch (IOException e)  
  26.         {  
  27.             e.printStackTrace();  
  28.         }  
  29.           
  30.     }  
  31. }  


如果将上面的PrintWriter换成PrintStream会报错,因为PrintStream只能封装字节流,不能封装Writer类对象。

 

注:如果对输出流的格式有特殊要求,使用 PrintStream, PrintWriter显然会比较方便,详细可以产看Java API文档。