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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大话数据结构PDF

    大话数据结构PDF《大话数据结构》相关下载地址重难点目录下载地址云盘:touchhere.提取码:93dc重难点目录第一章绪论逻辑结构,物理存储结构(顺序和链式)数据结构类型第二章算法时间复杂度和空间复杂度,计算方法最坏情况、平均情况。第三章链表动态链表:指针,常用静态链表:数组,无指针语言(Basic)使用,较少用 循环链表:(单循环)next双向链表:next,prior 双向循环链表,插入时候的指针改动,顺序非常重要。–》第四章

    2022年6月24日
    31
  • Oracle创建表空间和创建临时表空间

    Oracle创建表空间和创建临时表空间/*第1步:创建临时表空间 */createtemporarytablespacekc_temptempfile’C:\app\Administrator\oradata\orcl\kc_temp.dbf’ size50m  autoextendon  next50mmaxsize20480m  extentmanagementlocal;   

    2022年7月27日
    5
  • css规则定义的分类,CSS规则定义英汉对照表[通俗易懂]

    css规则定义的分类,CSS规则定义英汉对照表[通俗易懂]《CSS规则定义英汉对照表》由会员分享,可在线阅读,更多相关《CSS规则定义英汉对照表(4页珍藏版)》请在人人文库网上搜索。1、CSS规则定义英汉对照表一、类型font-family:字体font-size:字体大小font-weight:字体浓淡font-style:字体风格如:斜体、正常等font-variant:字体变量(用来设定字体是正常显示,还是以小型大写字母显示)line-heig…

    2022年5月17日
    35
  • pycharm创建python虚拟环境好处_pycharm创建虚拟环境很慢

    pycharm创建python虚拟环境好处_pycharm创建虚拟环境很慢很多时候由于每个项目所需要的库和其版本都不一样,在根目录下运行项目的复杂性会大很多,这是很多人会选择使用虚拟环境,今天给大家介绍一些pycharm中傻瓜式添加虚拟环境的方法。pycharm首页:File=>Settings=>你的项目名下的pythoninterpreter=>设置按钮=>addpythoninterpreter图1在该页面下的VirtualenvEnvironment(虚拟环境设置界面),有两种设置添加虚拟环境的选项。Ne

    2022年8月26日
    12
  • idea创建java项目_使用IDEA创建java项目(hello word)

    idea创建java项目_使用IDEA创建java项目(hello word)前提:已安装好jdk,配置好环境变量。我使用的是java8首先在自己的D盘下建一个文件夹,用来存放我们待会新建的项目,我创建了IdeaProject:1,第一步打开idea2,第二步选择创建java项目,并选择自己的jdk(我自己本地已经配置了所以有),没有可以点击new去自己的安装目录下找,一般默认安装C:\ProgramFiles\Java,然后选择next下一步3,第三步将“Creat…

    2022年7月9日
    59
  • Maskrcnn中resnet50改为resnet34「建议收藏」

    Maskrcnn中resnet50改为resnet34「建议收藏」因需要训练的数据集并不复杂,resnet50的结构有点冗余,于是就把maskrcnn的backbone从resnet50改为resnet34结构。找到model文件,将resnet50部分代码做一定的修改,就可以得到resnet34的相关代码下面是相关代码:##con_block修改为conv_block0并添加到model文件中defconv_block0(input_tensor…

    2022年10月6日
    4

发表回复

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

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