1. 程式人生 > >Java-IO之PrintWriter(字元列印輸出流)

Java-IO之PrintWriter(字元列印輸出流)

PrintWriter是字元型別的列印輸出流,繼承於Writer,用於向文字輸出流列印物件的格式化表示形式。 PrintWriter的主要函式:
PrintWriter(OutputStream out)
PrintWriter(OutputStream out, boolean autoFlush)
PrintWriter(Writer wr)
PrintWriter(Writer wr, boolean autoFlush)
PrintWriter(File file)
PrintWriter(File file, String csn)
PrintWriter(String fileName)
PrintWriter(String fileName, String csn)

PrintWriter     append(char c)
PrintWriter     append(CharSequence csq, int start, int end)
PrintWriter     append(CharSequence csq)
boolean     checkError()
void     close()
void     flush()
PrintWriter     format(Locale l, String format, Object... args)
PrintWriter     format(String format, Object... args)
void     print(float fnum)
void     print(double dnum)
void     print(String str)
void     print(Object obj)
void     print(char ch)
void     print(char[] charArray)
void     print(long lnum)
void     print(int inum)
void     print(boolean bool)
PrintWriter     printf(Locale l, String format, Object... args)
PrintWriter printf(String format, Object... args)
void     println()
void     println(float f)
void     println(int i)
void     println(long l)
void     println(Object obj)
void     println(char[] chars)
void     println(String str)
void     println(char c)
void     println(double d)
void     println(boolean b)
void     write(char[] buf, int offset, int count)
void     write(int oneChar)
void     write(char[] buf)
void     write(String str, int offset, int count)
void     write(String str)

示例程式碼:
public class PrintWriterTest {

    public static void main(String[] args) {

        // 下面3個函式的作用都是一樣:都是將字母“abcde”寫入到檔案“file.txt”中。
        // 任選一個執行即可!
        testPrintWriterConstrutor1() ;
        //testPrintWriterConstrutor2() ;
        //testPrintWriterConstrutor3() ;

        // 測試write(), print(), println(), printf()等介面。
        testPrintWriterAPIS() ;
    }

    /**
     * PrintWriter(OutputStream out) 的測試函式
     *
     * 函式的作用,就是將字母“abcde”寫入到檔案“file.txt”中
     */
    private static void testPrintWriterConstrutor1() {
        final char[] arr={'a', 'b', 'c', 'd', 'e' };
        try {
            // 建立檔案“file.txt”的File物件
            File file = new File("file.txt");
            // 建立檔案對應FileOutputStream
            PrintWriter out = new PrintWriter(new FileOutputStream(file));
            // 將“位元組陣列arr”全部寫入到輸出流中
            out.write(arr);
            // 關閉輸出流
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

        /**
       * PrintWriter(File file) 的測試函式
        *
       * 函式的作用,就是將字母“abcde”寫入到檔案“file.txt”中
        */
        private static void testPrintWriterConstrutor2() {
            final char[] arr={'a', 'b', 'c', 'd', 'e' };
          try {
              File file = new File("file.txt");
                PrintWriter out = new PrintWriter(file);
                out.write(arr);
                out.close();
            } catch (IOException e) {
              e.printStackTrace();
            }
      }

        /**
       * PrintWriter(String fileName) 的測試函式
        *
       * 函式的作用,就是將字母“abcde”寫入到檔案“file.txt”中
        */
    private static void testPrintWriterConstrutor3() {
        final char[] arr={'a', 'b', 'c', 'd', 'e' };
          try {
              PrintWriter out = new PrintWriter("file.txt");
            out.write(arr);
            out.close();
            } catch (IOException e) {
              e.printStackTrace();
            }
      }

    /**
       * 測試write(), print(), println(), printf()等介面。
    */private static void testPrintWriterAPIS() {
            final char[] arr={'a', 'b', 'c', 'd', 'e' };
          try {
            // 建立檔案對應FileOutputStream
            PrintWriter out = new PrintWriter("other.txt");

        // 將字串“hello PrintWriter”+回車符,寫入到輸出流中
        out.println("hello PrintWriter");
        // 將0x41寫入到輸出流中
        // 0x41對應ASCII碼的字母'A',也就是寫入字元'A'
        out.write(0x41);
        // 將字串"65"寫入到輸出流中。
        // out.print(0x41); 等價於 out.write(String.valueOf(0x41));
        out.print(0x41);
        // 將字元'B'追加到輸出流中
        out.append('B').append("CDEF");

        // 將"CDE is 5" + 回車  寫入到輸出流中
        String str = "GHI";
             int num = 5;
        out.printf("%s is %d\n", str, num);

        out.close();
        } catch (IOException e) {
             e.printStackTrace();
        }
     }
}