PrintWriter用法简析

public class PrintWriterextends Writer

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

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

此类中的方法不会抛出 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类用法,代码示例:

 1 import java.io.BufferedReader;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.InputStreamReader;
 8 import java.io.OutputStream;
 9 import java.io.PrintWriter;
10
11
12 public class javaTest {
13
14     public static void main(String[] args) throws IOException  {
15         /*
16          * 创建输出流,将信息写入指定的文件中
17          */
18         OutputStream os=new FileOutputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
19         PrintWriter pw=new PrintWriter(os);
20         pw.write("小帅哥");
21         pw.append(" 你真帅~");
22         pw.println("我稀罕你");
23         pw.write("我爱你");
24         //输出流需要在读取之前关闭保存
25         pw.close();
26         os.close();
27
28         /*
29          * 创建输入流,将信息读到控制台
30          */
31         InputStream is=new FileInputStream("C:\\Users\\qinghuang\\Desktop\\io1.txt");
32         InputStreamReader isr=new InputStreamReader(is);
33         BufferedReader br=new BufferedReader(isr);
34
35         String info=null;
36         info=br.readLine();
37         while(info!=null){
38             System.out.println(info);
39             info=br.readLine();
40         }
41         br.close();
42         isr.close();
43         is.close();
44     }
45 }

运行结果:

1 小帅哥 你真帅~我稀罕你 2 我爱你

io2.txt文档中为:

小帅哥 你真帅~我稀罕你
我爱你

分析:从上述的代码实现中可以看出,PrintWriter类对象的write()、print()、append()方法实现最后结果相同,只是在调用的时候其返回值有所不同,可根据需要进行灵活的选择,其他没有看出有什么不同。(这个结论通过查询jdk api文档和程序测试得来的)。另一个注意:一般I/O流的输入方和输出方的类是成对出现的,但是PrintWriter不是,并没有与之对应的类。

时间: 2024-10-05 22:12:37

PrintWriter用法简析的相关文章

sscanf用法简析

1. 常见用法. char buf[512] = ; sscanf("123456 ", "%s", buf); printf("%s\n", buf); 结果为:123456 2. 取指定长度的字符串.如在下例中,取最大长度为4字节的字符串. sscanf("123456 ", "%4s", buf); printf("%s\n", buf); 结果为:1234 3. 取到指定字符为止

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

list list是一种有序的集合(或称作列表),可以很方便地添加和删除其中的元素. >>> classmates = ['Michael', 'Bob', 'Tracy'] 可通过序号访问各元素,序号范围:-n ~ n-1,当索引超出了范围时,Python会报一个IndexError错误 append(...)新增元素:classmates.append('Miranda') insert(... , ...)插入元素到指定位置:classmates.insert(2,'John')

android:descendantFocusability用法简析

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点.原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,

ShellExecute API函数用法简析

在VC/C++编程中,我们会经常遇到打开文件.网页.可执行程序的应用场景,ShellExecute API函数就可以做到这一点.现在我们看看它的强大!   ShellExecute函数原型: HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd );     ShellExecute函数参数说明:

使listview下的控件获取点击事件,android:descendantFocusability用法简析

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点.原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,

80、Flask用法简析

本篇导航: 基本使用 模板.请求和响应 Session 蓝图 其他 Flask插件 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用

sed简析

写一个shell命令,统计apache日志文件(access_log)中某一天中每个URL的访问次数,并按照次数由小到大的顺序排序输出:# cat /application/nginx/logs/20170202_access_www.log |awk '{print $7}'|sort| uniq -c |sort -n awk  '{print $7}' 匹配到 url 记录即日志文件格式的($http_referer)字段sort  是排序 ,并且标准输出到屏幕uniq -c  统计重复的

Android菜单简析02(ContextMenu)

在上一篇文章 Android 菜单简析01(OptionsMenu) 中给大家介绍了OptionsMenu 的使用,这篇接着给大家介绍下ContextMenu 的用法. ContextMenu 简称上下文菜单,通过长按事件响应,有两种响应模式 浮动模式 效果类似弹出的 Dialog,在屏幕的正中央,可以自定义显示的 Menu 以及 MenuItem 的响应 动作模式 通过ActionBar 实现,效果实在 Title 的地方,出现动作条. 特别注意 ContextMenu 的 动作模式 在 An

WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异简析

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异,从整体上看,应该是 gl 前缀在 WebGL 版指令中的省略,举例对比如