PrintWriter用法简析

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

大家好,又见面了,我是你们的朋友全栈君。

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类用法,代码示例:

 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不是,并没有与之对应的类。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2019.3激活码永久_通用破解码

    idea2019.3激活码永久_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    2.4K
  • 如何通过eclipse导入web项目「建议收藏」

    如何通过eclipse导入web项目「建议收藏」如何通过eclipse导入web项目通过eclipse导入web项目的相关流程。【1】打开eclipse,单击左上角的File,File–>Import【2】打开General–>ExistingprojectsintoWorkspace–>Browse(选择需要打开的项目)注意:记得勾选下方【copyprojectintoproject】【3】所有不是在自己电脑上开发的web项目,都需要重新配置一下,单击项目右键,打开Projects【4】打开JavaBul

    2022年4月20日
    152
  • 快速搭建自己的直播服务器,完成属于你的直播服务。

    快速搭建自己的直播服务器,完成属于你的直播服务。通过本文您能学到以下内容:1、动手搭建直播服务器,完成一次对移动端支持的直播。2、使用OBS推流。3、使用html5网页播放m3u8流媒体文件。一、动手搭建流媒体服务器这里我们选用开源srs流媒体服务器[https://github.com/ossrs/srs],有兴趣的同学也可选用[AdobeMediaServer5],原理都是一样的。安装方法在[https://…

    2022年6月11日
    129
  • 编码转换工具_PDF在线转换工具

    编码转换工具_PDF在线转换工具核心代码:1voidEncodeBase64(unsignedchar*ce,unsignedchar*co)2{3unsignedchar*p;4unsignedi

    2022年8月6日
    5
  • wing是什么_计算二叉树的深度和叶子结点数

    wing是什么_计算二叉树的深度和叶子结点数设一个 n 个节点的二叉树 tree 的中序遍历为(1,2,3,…,n),其中数字 1,2,3,…,n 为节点编号。每个节点都有一个分数(均为正整数),记第 i 个节点的分数为 di,tree 及它的每个子树都有一个加分,任一棵子树 subtree(也包含 tree 本身)的加分计算方法如下:subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数若某个子树为空,规定其加分为 1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,2,

    2022年8月9日
    6
  • Mit6.S081学习记录

    Mit6.S081学习记录这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar

    2022年6月6日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号