1. 程式人生 > >java 列印流(PrintStream 和PrintWriter )

java 列印流(PrintStream 和PrintWriter )

1.列印流

/*如果使用OutputStream輸出資料,需要將資料變為位元組陣列輸出,使用起來不是很方便;
	為了解決使用OutputStream輸出資料的不足,java提供了一套專門輸出資料的類PrintStream(列印位元組流)和PrintWriter(列印字元流);
	public class PrintStream extends FilterOutputStream implements Appendable, Closeable{}
	public class PrintWriter extends Writer {}
	在PrintWriter類中提供了一系列的print()和println();支援各種型別的輸出,不再使用write();
	在整個的操作過程中,雖然操作的形式不同,但是本質上仍然是基於Output類的方法完成的;
	這種設計模式,java中叫裝飾模式;相當於將一個功能不足的操作類,通過某些類的包裝,形成更好用的工具類;
	在實際的開發中,只要是由程式輸出內容,都會採用列印流模式完成,但是需要明確的是列印流仍然需要OutputStream的支援;*/
	PrintStream ps1=new PrintStream(new FileOutputStream(new 
    File("D:\\testio\\a.txt")));
    ps1.println(true);
    ps1.println("hello");
    ps1.print(1.2);
    ps1.println(1);
    ps1.println("我是檔案的結尾");
    ps1.close();

2.JDk1.5對列印流的支援

/*JDK1.5之後的改進
	  所有的輸出資料都要求使用列印流完成,但是JDK1.5之後增加了一種新的輸出,格式化輸出;
	  public PrintWriter printf(String format,Object... args){}
	  public PrintWriter printf(Locale l,String format,Object... args){}
	 如果需要格式化輸出就需要一些標記:
	  整數:%d
	  字串:%s
	 小數:%f
	 字元:%c*/
	String name="mike";
    int age=18;
    double score=59.444;
	PrintStream ps=new PrintStream(new FileOutputStream(new File("D:\\testio\\a.txt")));
      System.out.printf("姓名:%s,年齡%d,分數%5.2f",name,age,score);//實際開發中不會用到此類輸出;
       ps.close();
   /* JDk1.5後String類新增了一個格式化字串的方法
     public static String format(String format, Object... args)
     */
	String name1="mike";
    int age1=18;
    double score1=59.444;
	String format = String.format("姓名:%s,年齡%d,分數%5.2f", name1,age1,score1);
	System.out.println(format);