PrintWriter类

来源:互联网 发布:达梦数据库公司上市 编辑:程序博客网 时间:2024/06/07 01:34

1、PrintWriter类(java.io包中)

PrintWriter是一个非常实用的输出流。

(1) 构造方法(8种)

▽ PrintWriter是一种过滤流(也叫处理流),能对字节流(OutputStream)和字符流(Writer)进行处理,所以它必然支持对这两种方式的构造:     ① 不带自动刷新:    PrintWriter(OutputStream out)    根据现有的OutputStream创建不带自动刷新的对象    PrintWriter(Writer out)  创建不带自动刷新的PrintWriter对象。   ② 带自动刷新(autoFlush为true代表能自动刷新):    PrintWriter(OutputStream out, boolean autoFlush)       PrintWriter(Writer out, boolean autoFlush)  ▽ PrintWriter能够直接对文件操作,所以它必然支持对文件的构造:     ① 不可以指定编码集:    PrintWriter(File file)   使用指定文件创建不带自动刷新的PrintWriter对象    PrintWriter(String fileName)    创建具有指定文件名称且不带自动刷新的PrintWriter对象   ② 可以指定编码集:    PrintWriter(File file, String csn)  创建具有指定文件和字符集且不带自动刷新的对象    PrintWriter(String fileName, String csn)  创建具有指定文件名称和字符集且不带自动刷新的

(2) 实现的接口:

▽ Closeable接口。所以它有.close()方法来实现对PrintWriter的关闭。▽ Flushable接口。所以它有.flush()方法来实现人为的刷新。▽ Appendable接口。所以它有.append(char c)方法来向此输出流中追加指定字符,等价于print()。

(3) 调用方法

PrintWriter append(char c)PrintWriter format(String regex,Object args) 以指定格式的字符串和参数写入PrintWriter,等同于printf PrintWriter printf()Void println(Object obj)  打印obj,可以是基本数据类型或对象,并换行Void print(Object obj)    同上,但不换行Void write(int i)    写入单个字符iVoid write(char[] buf)    写入字符数组Void write(char[] buf, int off, int len)  写入字符数组的某一部分Void write(String s)     写入字符串 Void write(String s, int off, int len)   写入字符串的某一部分Boolean checkError()     刷新流并检查其错误状态

4)举例:

import java.io.IOException;import java.io.PrintWriter;import java.io.FileWriter;import java.io.File;public class PrintWriterDemo {    public static void main(String[] args) {        PrintWriter pw = null;        String name = "张松伟";        int age = 22;        float score = 32.5f;        char sex = '男';        try {            pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")), true);            pw.printf("姓名:%s;年龄:%d;性别:%c;分数:%5.2f;", name, age, sex, score);            pw.println();            pw.write(name.toCharArray());        } catch (IOException e) {            e.printStackTrace();        } finally {            pw.close();        }    }}

2、写文件最佳组合

PrintWriter  out  =  new  PrintWriter(        new BufferedWriter( new FileWriter( filename ) ) );  PrintWriter   提供print系方法  BufferedWriter   提供缓冲,用以加速  FileWriter   用于写文件----------------------------------------PrintWriter以字符为单位,支持汉字,  OutputStreamWriter以字节为单位,不支持汉字----------------------------------------

http://blog.sina.com.cn/s/blog_9989f1120101310n.html

0 0