java.io包

1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:

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

PrintWriter(Writer out)  创建不带自动行刷新的新 PrintWriter。

这两种构造方法。由于PrintWriter能够实现自动刷新所以又衍生出另两种:

PrintWriter(OutputStream out, boolean autoFlush)  通过现有的 OutputStream 创建新的 PrintWriter。

PrintWriter(Writer out, boolean autoFlush)  创建新 PrintWriter

true代表能自动刷新。注意这四种均不能指定编码集,但PrintStream中对OutprintStream操作时是可以的。【其中原因我不知,有知道的朋友欢迎指教】。

然后PrintWriter能够直接对文件操作,所以还有这两种构造方法:

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

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

注意该构造方法无法指定能否自动刷新,但可以指定字符集所以又衍生出两种:

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

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

2)熟记这八种构造方法,你可以随心构造你需要的PrintWriter对象了(假如为pw)。那它实现了什么接口呢?

1.Closeable接口, 所以它有pw.close()方法来实现对PrintWriter的关闭。

2.Flushable接口,所以它有pw.flush()方法来实现人为的刷新。

3.Appendable接口,所以它有pw.append(char c)方法来向此输出流中追加指定字符,等价于print().

3)下面就是它的方法。

返回类型为PrintWriter的方法

append(char c)

format(String regex,Object args)以指定格式的字符串和参数写入PrintWriter,我个人认为等同于printf

printf()

返回类型为void的方法

println(Object obj)打印obj,可以是基本数据类型或对象,并换行

print(Object obj)同上,但不换行

write(int i) 写入单个字符i

write(char[] buf)  写入字符数组。

write(char[] buf, int off, int len)  写入字符数组的某一部分。

write(String s) 写入字符串

write(String s, int off, int len)写入字符串的某一部分

个人认为:write()方法与print()方法基本一致 但是write(char[] buf, int off, int len)print()不行。但笔者推荐使用Print系列方法,这正是PrintWriter类的价值所在。

返回类型为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.println("多多指教");
pw.write(name.toCharArray());
}catch(IOException e){
e.printStackTrace();
}finally{
pw.close();
}
}
}

上面这个例子中呢,完全可以把pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true);中的new  FileWrite去掉 毫无影响且可以指定字符集。

总结:PrintWriter是一个非常实用的输出流,下一篇我将介绍一个非常实用的输入流Scanner

学习PrintWriter类 .的更多相关文章

  1. Java虚拟机JVM学习07 类的卸载机制

    Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...

  2. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

  3. Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  4. Java学习-023-Properties 类 XML 配置文件读取及写入源代码

    之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...

  5. 再次学习C++类之构造函数

    学习C++类,首先要说C中的结构体,虽然C++类扩展了C中的结构体,可以添加成员函数,但他们是有区别的.在结构体中,成员变量.成员函数都是公有的,而类中,一般是成员变量是私有的,成员函数是公有的,私有 ...

  6. (转) 学习C++ -> 类(Classes)的定义与实现

    学习C++ -> 类(Classes)的定义与实现 一."类" 的介绍    在C++中, 用 "类" 来描述 "对象", 所谓的&q ...

  7. Javascript学习6 - 类、对象、继承

    原文:Javascript学习6 - 类.对象.继承 Javasciprt并不像C++一样支持真正的类,也不是用class关键字来定义类.Javascript定义类也是使用function关键字来完成 ...

  8. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  9. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

随机推荐

  1. 微信JS-SDK 接口调用与 php 遇到的坑

    问题:config:invalid signature一直爆这个错误 解决: 看我把这些坑都总结了一下:要命的invalid signature. https://segmentfault.com/q ...

  2. linux运维基础__争取十月前研究的差不多

    转来的一编,考虑在十月前研究的差不多 linux运维人员基础 1.很多地方经常会用到的rsync工具 实施几台服务器的同步效果 我们公司就是使用这个工具完成服务器的游戏的服务端和客户端同步,有几个文章 ...

  3. apt软件包管理

    apt软件包管理 ----   http://wiki.ubuntu.org.cn/UbuntuHelp:AptGet/Howto/zh APT HOWTO  ----    http://www.d ...

  4. cf C. Tourist Problem

    http://codeforces.com/contest/340/problem/C #include <cstdio> #include <cstring> #includ ...

  5. find详解

    一.简介 在目录结构中搜索文件,并执行指定的操作. 二.语法 find path -option [ -print ] [ -exec -ok command ] {} \;path: find命令所 ...

  6. bootargs中的环境变量说明和一些常用的uboot命令

    bootargs中的环境变量说明和一些常用的uboot命令 一些常见的uboot命令:Help [command]在屏幕上打印命令的说明Boom [addr]启动在内存储器的内核Tftpboot通过t ...

  7. HashMap非线程安全分析

    通过各方资料了解,HashMap不是线程安全的,但是为什么不是线程安全的,在什么情况下会出现问题呢? 1. 下面对HashMap做一个实验,两个线程,并发写入不同的值,key和value相同,最后再看 ...

  8. Word Pattern II 解答

    Question Given a pattern and a string str, find if str follows the same pattern. Here follow means a ...

  9. PHP 后台程序配置config文件,及form表单上传文件

    一,配置config文件 1获取config.php文件数组, 2获取form 表单提交的值 3保存更新config.php文件,代码如下: $color=$_POST['color']; $back ...

  10. Android之字符串的拆分-split

    字符串的拆分可以利用android的 split 来简单实现 具体看如下代码: String s3 = "Real-How-To"; String [] temp = null; ...