public class PrintWriterextends Writer

向文本输出流打印对象的格式化表示形式。此类实现在 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 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不是,并没有与之对应的类。

PrintWriter用法简析的更多相关文章

  1. sscanf用法简析

    1. 常见用法. char buf[512] = ; sscanf("123456 ", "%s", buf); printf("%s\n" ...

  2. Android Support Library 23.2用法简析

    写在前面的几句话 前几天谷歌发布了android-support-library-23.2支持库,这一次23.2版本增加了一些新的支持库以及新的功能.接下来这篇文章,就是对这些新功能部分做简单的用法介 ...

  3. android:descendantFocusability用法简析

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...

  4. 坑爹的属性,android:descendantFocusability用法简析

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承 BaseAdapter,在adapter中按照需求进行编写,问题就出现 ...

  5. 80、Flask用法简析

    本篇导航: 基本使用 模板.请求和响应 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于 ...

  6. C# 线程池ThreadPool的用法简析

    https://blog.csdn.net/smooth_tailor/article/details/52460566 什么是线程池?为什么要用线程池?怎么用线程池? 1. 什么是线程池? .NET ...

  7. 【python笔记】python中的list、tuple、set、dict用法简析

    list list是一种有序的集合(或称作列表),可以很方便地添加和删除其中的元素. >>> classmates = ['Michael', 'Bob', 'Tracy'] 可通过 ...

  8. android:descendantFocusability用法简析(转)

        开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题 ...

  9. Entitas实现简析

    Entitas实现简析   这里主要讲Entitas的执行原理,不讲Entitas的代码生成方面. ECS简介   ECS(实体-组件-系统)是一种常用于游戏开发的架构模式.   实体: 实体只是一个 ...

随机推荐

  1. POJ 1862 Stripies

    每次合并最大的两个,优先级队列维护一下. 输出的时候%.3lf G++会WA,C++能AC,改成%.3f,都能AC. #include<cstdio> #include<cstrin ...

  2. 微信公众号支付开发全过程 --JAVA

    按照惯例,开头总得写点感想 ------------------------------------------------------------------ 业务流程 这个微信官网说的还是很详细的 ...

  3. linux下安装部署环境:jdk、tomcat、nginx

    一.安装jdk 一.查看Linux自带的JDK是否已安装 1.查看已经安装的jdk: # rpm -qa|grep jdk                ← 查看jdk的信息或直接执行 或 # rpm ...

  4. iOS 获取本地文件的各种坑

    1.无论:TXT,EPUB,PDF等各种格式的文件,保存到本地的时候,最好都保存成字母或者数字,不要保存成汉字,否则,在取文件的时候,由于编码的问题,各种瓦特 2.如果文件名真的保存成了汉字,那么进行 ...

  5. STM32 驱动1602液晶

    利用STM32f103c8t6单片机驱动1602A液晶进行显示功能 上图即为写入信息后的效果图 本人用的是STM32的核心系统,无任何外设 库函数:3.5版本的库函数 驱动模式:采用4线驱动模式 供电 ...

  6. SQLite用法

    SQLite语法:http://blog.csdn.net/ejzhang/article/details/6224915#08 SQLite查询优化:1.http://www.eoeandroid. ...

  7. 安卓 listview与arrayadapter

    今天有感于群里讨论的一个问题,很简单,但是问题还真是需要仔细看一下 问题:定义了一个最简单的arrayadapter,和listview结合使用,灭个item就显示个最简单的textView,一共6个 ...

  8. MVVM指南(课程学习)

    iOS MVVM 参考 iOS MVVM 前世今生 iOS MVVM 优缺点 下面是我对MVVM知识的总结,主要包括模块划分.开发步骤.重点解说三部分.做这篇文章,主要是考虑总结出可执行的开发步骤,按 ...

  9. Angular - - ngCsp、ngFocus、ngBlur、ngForm

    ngCsp 处理CSP(上下文安全策略)的支持. 当开发如google浏览器的扩展时候这个就必须使用. CSP禁止应用程序使用eval和Function(string)生成的函数.如果我们需要兼容,我 ...

  10. 简述Android系统内存不足时候,内存回收机制

    当Android系统的内存不足时,会根据以下的内存回收规则来回收内存: 1.先回收与其他Activity或Service/Intent Receiver无关的进程(即优先回收独立的Activity) ...