java 列印流(PrintStream 和PrintWriter )
阿新 • • 發佈:2018-12-15
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);