javaio-printwriter

转自http://www.cnblogs.com/skywang12345/p/io_25.html

PrintWriter 介绍

PrintWriter 是字符类型的打印输出流,它继承于Writer。
PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

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)
复制代码

PrintWriter 源码

 View Code

示例代码

关于PrintWriter中API的详细用法,参考示例代码(PrintWriterTest.java):

复制代码
  1 import java.io.PrintWriter;
  2 import java.io.File;
  3 import java.io.FileOutputStream;
  4 import java.io.IOException;
  5 
  6 /**
  7  * PrintWriter 的示例程序
  8  *
  9  * @author skywang
 10  */
 11 public class PrintWriterTest {
 12 
 13     public static void main(String[] args) {
 14 
 15         // 下面3个函数的作用都是一样:都是将字母“abcde”写入到文件“file.txt”中。
 16         // 任选一个执行即可!
 17         testPrintWriterConstrutor1() ;
 18         //testPrintWriterConstrutor2() ;
 19         //testPrintWriterConstrutor3() ;
 20 
 21         // 测试write(), print(), println(), printf()等接口。
 22         testPrintWriterAPIS() ;
 23     }
 24 
 25     /**
 26      * PrintWriter(OutputStream out) 的测试函数
 27      *
 28      * 函数的作用,就是将字母“abcde”写入到文件“file.txt”中
 29      */
 30     private static void testPrintWriterConstrutor1() {
 31         final char[] arr={'a', 'b', 'c', 'd', 'e' };
 32         try {
 33             // 创建文件“file.txt”的File对象
 34             File file = new File("file.txt");
 35             // 创建文件对应FileOutputStream
 36             PrintWriter out = new PrintWriter(
 37                     new FileOutputStream(file));
 38             // 将“字节数组arr”全部写入到输出流中
 39             out.write(arr);
 40             // 关闭输出流
 41             out.close();
 42         } catch (IOException e) {
 43             e.printStackTrace();
 44         }
 45     }
 46 
 47     /**
 48      * PrintWriter(File file) 的测试函数
 49      *
 50      * 函数的作用,就是将字母“abcde”写入到文件“file.txt”中
 51      */
 52     private static void testPrintWriterConstrutor2() {
 53         final char[] arr={'a', 'b', 'c', 'd', 'e' };
 54         try {
 55             File file = new File("file.txt");
 56             PrintWriter out = new PrintWriter(file);
 57             out.write(arr);
 58             out.close();
 59         } catch (IOException e) {
 60             e.printStackTrace();
 61         }
 62     }
 63 
 64     /**
 65      * PrintWriter(String fileName) 的测试函数
 66      *
 67      * 函数的作用,就是将字母“abcde”写入到文件“file.txt”中
 68      */
 69     private static void testPrintWriterConstrutor3() {
 70         final char[] arr={'a', 'b', 'c', 'd', 'e' };
 71         try {
 72             PrintWriter out = new PrintWriter("file.txt");
 73             out.write(arr);
 74             out.close();
 75         } catch (IOException e) {
 76             e.printStackTrace();
 77         }
 78     }
 79 
 80     /**
 81      * 测试write(), print(), println(), printf()等接口。
 82      */
 83     private static void testPrintWriterAPIS() {
 84         final char[] arr={'a', 'b', 'c', 'd', 'e' };
 85         try {
 86             // 创建文件对应FileOutputStream
 87             PrintWriter out = new PrintWriter("other.txt");
 88 
 89             // 将字符串“hello PrintWriter”+回车符,写入到输出流中
 90             out.println("hello PrintWriter");
 91             // 将0x41写入到输出流中
 92             // 0x41对应ASCII码的字母'A',也就是写入字符'A'
 93             out.write(0x41);
 94             // 将字符串"65"写入到输出流中。
 95             // out.print(0x41); 等价于 out.write(String.valueOf(0x41));
 96             out.print(0x41);
 97             // 将字符'B'追加到输出流中
 98             out.append('B').append("CDEF");
 99 
100             // 将"CDE is 5" + 回车  写入到输出流中
101             String str = "GHI";
102             int num = 5;
103             out.printf("%s is %d
", str, num);
104 
105             out.close();
106         } catch (IOException e) {
107             e.printStackTrace();
108         }
109     }
110 }
复制代码

运行上面的代码,会在源码所在目录生成两个文件“file.txt”和“other.txt”。
file.txt的内容如下:
abcde
other.txt的内容如下:
hello PrintWriter
A65BCDEFGHI is 5

原文地址:https://www.cnblogs.com/jasenin/p/4318682.html