PrintWriter用法簡析


public class PrintWriterextends Writer
 
        

向文本輸出流打印對象的格式化表示形式。此類實現在 PrintStream 中的所有 print 方法。它不包含用於寫入原始字節的方法,對於這些字節,程序應該使用未編碼的字節流進行寫入。

PrintStream 類不同,如果啟用了自動刷新,則只有在調用 printlnprintfformat 的其中一個方法時才可能完成此操作,而不是每當正好輸出換行符時才完成。這些方法使用平台自有的行分隔符概念,而不是換行符。

此類中的方法不會拋出 I/O 異常,盡管其某些構造方法可能拋出異常。客戶端可能會查詢調用 checkError() 是否出現錯誤。

構造方法表

PrintWriter(File file)
          使用指定文件創建不具有自動行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
          創建具有指定文件和字符集且不帶自動刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
          根據現有的 OutputStream 創建不帶自動行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
          通過現有的 OutputStream 創建新的 PrintWriter。
PrintWriter(String fileName)
          創建具有指定文件名稱且不帶自動行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
          創建具有指定文件名稱和字符集且不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out)
          創建不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
          創建新 PrintWriter。

                                 printwriter類的方法表

PrintWriter append(char c)
          將指定字符添加到此 writer。
 PrintWriter append(CharSequence csq)
          將指定的字符序列添加到此 writer。
 PrintWriter append(CharSequence csq, int start, int end)
          將指定字符序列的子序列添加到此 writer。
 boolean checkError()
          如果流沒有關閉,則刷新流且檢查其錯誤狀態。
protected  void clearError()
          清除此流的錯誤狀態。
 void close()
          關閉該流並釋放與之關聯的所有系統資源。
 void flush()
          刷新該流的緩沖。
 PrintWriter format(Locale l, String format, Object... args)
          使用指定格式字符串和參數將一個格式化字符串寫入此 writer 中。
 PrintWriter format(String format, Object... args)
          使用指定格式字符串和參數將一個格式化字符串寫入此 writer 中。
 void print(boolean b)
          打印 boolean 值。
 void print(char c)
          打印字符。
 void print(char[] s)
          打印字符數組。
 void print(double d)
          打印 double 精度浮點數。
 void print(float f)
          打印一個浮點數。
 void print(int i)
          打印整數。
 void print(long l)
          打印 long 整數。
 void print(Object obj)
          打印對象。
 void print(String s)
          打印字符串。
 PrintWriter printf(Locale l, String format, Object... args)
          使用指定格式字符串和參數將格式化的字符串寫入此 writer 的便捷方法。
 PrintWriter printf(String format, Object... args)
          使用指定格式字符串和參數將格式化的字符串寫入此 writer 的便捷方法。
 void println()
          通過寫入行分隔符字符串終止當前行。
 void println(boolean x)
          打印 boolean 值,然后終止該行。
 void println(char x)
          打印字符,然后終止該行。
 void println(char[] x)
          打印字符數組,然后終止該行。
 void println(double x)
          打印雙精度浮點數,然后終止該行。
 void println(float x)
          打印浮點數,然后終止該行。
 void println(int x)
          打印整數,然后終止該行。
 void println(long x)
          打印 long 整數,然后終止該行。
 void println(Object x)
          打印 Object,然后終止該行。
 void println(String x)
          打印 String,然后終止該行。
protected  void setError()
          指示已發生錯誤。
 void write(char[] buf)
          寫入字符數組。
 void write(char[] buf, int off, int len)
          寫入字符數組的某一部分。
 void write(int c)
          寫入單個字符。
 void write(String s)
          寫入字符串。
 void write(String s, int off, int len)
          寫入字符串的某一部分。

PrintWriter類用法,代碼示例:

 1 import java.io.BufferedReader;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.InputStreamReader;
 8 import java.io.OutputStream;
 9 import java.io.PrintWriter;
10 
11 
12 public class javaTest {
13    
14     public static void main(String[] args) throws IOException  {
15         /*
16          * 創建輸出流,將信息寫入指定的文件中
17          */
18         OutputStream os=new FileOutputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
19         PrintWriter pw=new PrintWriter(os);
20         pw.write("小帥哥");
21         pw.append(" 你真帥~");
22         pw.println("我稀罕你");
23         pw.write("我愛你");
24         //輸出流需要在讀取之前關閉保存
25         pw.close();
26         os.close();      
27         
28         /*
29          * 創建輸入流,將信息讀到控制台
30          */
31         InputStream is=new FileInputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
32         InputStreamReader isr=new InputStreamReader(is);
33         BufferedReader br=new BufferedReader(isr);
34         
35         String info=null;
36         info=br.readLine();
37         while(info!=null){
38             System.out.println(info);
39             info=br.readLine();
40         }               
41         br.close();
42         isr.close();
43         is.close();          
44     }
45 }

運行結果:

 1 小帥哥 你真帥~我稀罕你 2 我愛你 

io2.txt文檔中為:

小帥哥 你真帥~我稀罕你
我愛你

分析:從上述的代碼實現中可以看出,PrintWriter類對象的write()、print()、append()方法實現最后結果相同,只是在調用的時候其返回值有所不同,可根據需要進行靈活的選擇,其他沒有看出有什么不同。(這個結論通過查詢jdk api文檔和程序測試得來的)。另一個注意:一般I/O流的輸入方和輸出方的類是成對出現的,但是PrintWriter不是,並沒有與之對應的類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM