PrintWriter类

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)    写入单个字符i

Void 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值