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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • icem二维非结构网格划分_ICEM_CFD划分六面体结构网格

    icem二维非结构网格划分_ICEM_CFD划分六面体结构网格ICEMCFD是CAE前处理软件,可输出多种网格格式,供Fluent、CFX、Abaqus等CFD软件使用。ICEM有多种几何接口,如CATIA、SolidWorks,SolidEdge等。ICEMCFD中可以生成多重拓扑块的结构和非结构化网格,采用了先进的O-Grid等技术,用户可以方便地在ICEMCFD中对非规则几何形状划出高质量的“O”形、“C”形、“L”形六面体网格。下面将以弯…

  • 再见VS Code,我用Fleet!

    再见VS Code,我用Fleet!大家好,我是辰哥~点击下方名片关注和星标『Python研究者』!????点击关注|设为星标|干货速递????来源Fleet官网:https://www.jetbrains.com/zh-cn/flee…

  • 【SpringBoot】46、SpringBoot中整合JWT实现Token验证(拦截器篇)

    【SpringBoot】46、SpringBoot中整合JWT实现Token验证(拦截器篇)前言上篇文章我们已经实现了使用自定义注解验证token信息,这样我们就会发现,当我们需要验证的接口较多时,我们需要每个方法上面都加上@JwtToken这个注解,也是非常麻烦,本片文章,我们继续使用拦截器来实现token信息的验证如果对整合JWT还不熟悉的朋友,可以先看看我的这篇博客:【SpringBoot】四十四、SpringBoot中整合JWT实现Token验证(整合篇)如果对自定义注解验证token信息感兴趣的朋友,可以看看我的这篇博客:【SpringBoot】四十五、Spr

  • 搭建SpringBoot源码环境的正确姿势(避坑必备)

    搭建SpringBoot源码环境的正确姿势(避坑必备)最近打算拉取SpringBoot源码,各种编译报错,各种问题。参考很多网上的教程,仍然是各种错误。最终研究出来了搭建SpringBoot源码环境的正确姿势。SpringBootGithub地址:https://github.com/spring-projects/spring-boot0、环境准备安装maven3.5或者以上版本。安装JDK8或者以上。1、fork到自…

  • 放松解压电影_最新电影下载

    放松解压电影_最新电影下载经典高清电影合集170GBT种子下载点击文件名下载经典高清电影合集170GBT种子.torrent下载方法经典高清电影合集详情见目录:1.杀手472.这个杀手不太冷3.放牛班的春天

  • RJ45网线接口_千兆网线水晶头接几根线

    RJ45网线接口_千兆网线水晶头接几根线RJ45接口通常用于数据传输,最常见的应用为网卡接口。RJ45是各种不同接头的一种类型(例如:RJ11也是接头的一种类型,不过它是电话上用的)。  RJ45头根据线的排序不同,分为有两种T568A,T568B,T568B是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕;T568A是绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;因此使用RJ45接头的线也有两种即:直通线、交叉线。常见的RJ45接口有两类:用于以太网网卡、路由器以太网接口等的DTE类型,还有用于交换机等的DCE类型。DTE我们可以称做“数据终端设备

发表回复

您的电子邮箱地址不会被公开。

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