public class PrintWriterextends 

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

与 类不同,如果启用了自动刷新,则只有在调用 printlnprintfformat 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。

此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 是否出现错误。

构造方法表

( file)
          使用指定文件创建不具有自动行刷新的新 PrintWriter。
( file,  csn)

          创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
( out)

          根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
( out,
boolean autoFlush)

          通过现有的 OutputStream 创建新的
PrintWriter。
( fileName)

          创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
( fileName,  csn)

          创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
( out)

          创建不带自动行刷新的新 PrintWriter。
( out,
boolean autoFlush)

          创建新 PrintWriter。

printwriter类的方法表

(char c)
          将指定字符添加到此 writer。
 ( csq)

          将指定的字符序列添加到此 writer。
 ( csq, int start,
int end)

          将指定字符序列的子序列添加到此 writer。
 boolean()

          如果流没有关闭,则刷新流且检查其错误状态。
protected
 void
()

          清除此流的错误状态。
 void()

          关闭该流并释放与之关联的所有系统资源。
 void()

          刷新该流的缓冲。
 ( l,  format, ... args)

          使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
 ( format, ... args)

          使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
 void(boolean b)

          打印 boolean 值。
 void(char c)

          打印字符。
 void(char[] s)

          打印字符数组。
 void(double d)

          打印 double 精度浮点数。
 void(float f)

          打印一个浮点数。
 void(int i)

          打印整数。
 void(long l)

          打印 long 整数。
 void( obj)

          打印对象。
 void( s)

          打印字符串。
 ( l,  format, ... args)

          使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
 ( format, ... args)

          使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
 void()

          通过写入行分隔符字符串终止当前行。
 void(boolean x)

          打印 boolean 值,然后终止该行。
 void(char x)

          打印字符,然后终止该行。
 void(char[] x)

          打印字符数组,然后终止该行。
 void(double x)

          打印双精度浮点数,然后终止该行。
 void(float x)

          打印浮点数,然后终止该行。
 void(int x)

          打印整数,然后终止该行。
 void(long x)

          打印 long 整数,然后终止该行。
 void( x)

          打印 Object,然后终止该行。
 void( x)

          打印 String,然后终止该行。
protected
 void
()

          指示已发生错误。
 void(char[] buf)

          写入字符数组。
 void(char[] buf,
int off, int len)

          写入字符数组的某一部分。
 void(int c)

          写入单个字符。
 void( s)

          写入字符串。
 void( s, int off,
int len)

          写入字符串的某一部分。

PrintWriter类用法,代码示例:

 import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter; public class javaTest { public static void main(String[] args) throws IOException {
/*
* 创建输出流,将信息写入指定的文件中
*/
OutputStream os=new FileOutputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
PrintWriter pw=new PrintWriter(os);
pw.write("小帅哥");
pw.append(" 你真帅~");
pw.println("我稀罕你");
pw.write("我爱你");
//输出流需要在读取之前关闭保存
pw.close();
os.close(); /*
* 创建输入流,将信息读到控制台
*/
InputStream is=new FileInputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr); String info=null;
info=br.readLine();
while(info!=null){
System.out.println(info);
info=br.readLine();
}
br.close();
isr.close();
is.close();
}
}

运行结果:

小帅哥 你真帅~我稀罕你 我爱你

io2.txt文档中为:

小帅哥 你真帅~我稀罕你
我爱你

分析:从上述的代码实现中可以看出,PrintWriter类对象的write()、print()、append()方法实现最后结果相同,只是在调用的时候其返回值有所不同,可根据需要进行灵活的选择,其他没有看出有什么不同。(这个结论通过查询jdk api文档和程序测试得来的)。另一个注意:一般I/O流的输入方和输出方的类是成对出现的,但是PrintWriter不是,并没有与之对应的类。

05-02 00:40