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

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

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

构造方法表

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

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

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

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

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

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

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

          创建新 PrintWriter。

printwriter类的方法表

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

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

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

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

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

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

          刷新该流的缓冲。
 PrintWriter format(Locale l, String format, Object... args)

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

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

          打印 boolean 值。
 void print(char c)

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

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

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

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

          打印整数。
 void print(long l)

          打印 long 整数。
 void print(Object obj)

          打印对象。
 void print(String s)

          打印字符串。
 PrintWriter printf(Locale l, String format, Object... args)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          写入单个字符。
 void write(String s)

          写入字符串。
 void write(String 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 PrintWriterTest { public static void main(String[] args) throws IOException {
/*
* 创建输出流,将信息写入指定的文件中
*/
OutputStream os=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\新建文本文档.txt");
PrintWriter pw=new PrintWriter(os);
pw.write("How are you ? ");
pw.append("i am fine ");
pw.println("and you ? ");
pw.write(" me too "); //输出流需要在读取之前关闭保存
pw.close();
os.close(); /*
* 创建输入流,将信息读到控制台
*/
InputStream is=new FileInputStream("C:\\Users\\Administrator\\Desktop\\新建文本文档.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();
}

结果:

How are you ? i am fine and you ? me too

BufferedWriter和PrintWriter都可以写入数据,但BufferedWriter没有相关的格式化的方法,而PrintWriter可以在写入同时对写入的数据进行格式化。

PrintWrite的更多相关文章

  1. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  2. java 通过jdbc连接MySQL数据库

    先了解下JDBC的常用接口 1.驱动程序接口Driver 每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类.通常情况下,通过java.lang.Clas ...

  3. [Java面试二]Java基础知识精华部分.

    一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...

  4. Java Web之JSP技术

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  5. java web 学习 --第五天(Java三级考试)

    第四天的学习内容:http://www.cnblogs.com/tobecrazy/p/3454860.html Response对象 response对象主要是向客户端浏览器发送二进制数据,如输出C ...

  6. 解决HttpServletResponse输出的中文乱码问题

    http://blog.csdn.net/simon_1/article/details/9092747 首先,response返回有两种,一种是字节流outputstream,一种是字符流print ...

  7. Java 输入输出流 转载

    转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...

  8. JSP内置对象的解析

    JSP九大对象及四大作用域并与之对应图表: 隐式对象 作用域 所属类 application application javax.servlet.ServletContext session sess ...

  9. [转] 解决HttpServletResponse输出的中文乱码问题

    首先,response返回有两种,一种是字节流outputstream,一种是字符流printwrite. 申明:这里为了方便起见,所有输出都统一用UTF-8编码. 先说字节流,要输出“中国" ...

随机推荐

  1. LightOJ——1012Guilty Prince(连通块并查集)

    1012 - Guilty Prince Time Limit: 2 second(s) Memory Limit: 32 MB Once there was a king named Akbar. ...

  2. request.getContextPath是为了解决相对路径的问题,可返回站点的根路径

    假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...

  3. com.alibaba.fastjson和org.json遍历获取key

    推荐都是用fastjson.org.json好像不支持序列化. com.alibaba.fastjson遍历获取key的方法: //fastjson解析方法 for (Map.Entry<Str ...

  4. Python脚本实现值更新事件赋值过程记录日志监控

    #LogWatch 实现值更新事件赋值过程记录日志监控 clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddRefere ...

  5. Redis数据结构之链表

    Redis使用的链表是双向无环链表,链表节点可用于保存各种不同类型的值. 一.链表结构定义1. 链表节点结构定义: 2. 链表结构定义: 示例: 二.链表在Redis中的用途1. 作为列表键的底层实现 ...

  6. windows软件配置

    1 安装jdk 配置环境变量 新建JAVA_HOME:D:\Program Files\Java\jdk1.8.0_151 新建JRE_HOME:D:\Program Files\Java\jre1. ...

  7. ZOJ - 4019 Schrödinger's Knapsack (背包,贪心,动态规划)

    [传送门]http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5747 [题目大意]:薛定谔的背包.薛定谔的猫是只有观测了才知道猫的死 ...

  8. TOT 傅立叶变换 FFT 入门

    HDU 1402,计算很大的两个数相乘. FFT 只要78ms,这里: 一些FFT 入门资料:http://wenku.baidu.com/view/8bfb0bd476a20029bd642d85. ...

  9. T9270 mjt树

    题目背景 从前森林里有一棵很大的mjt树,树上有很多小动物. 题目描述 mjt树上有 n 个房间,第 i 个房间住着 ai 只第bi 种小动物. 这n个房间用n-1条路连接起来,其中房间1位mjt树的 ...

  10. 深入GCD(四):使用串行队列实现简单的预加载

    其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DW ...